update `ty::TyKind` documentation slightly unsure about `ty::Opaque` and `ty::Bound`/`ty::Placeholder`. r? `@jackh726` `@nikomatsakis` `@oli-obk`
For high-level intro to how type checking works in rustc, see the type checking chapter of the rustc dev guide.