Type conversions

Casting and coercions. Adds custom DST coercions for smart pointers. Otherwise, mostly descriptive, with a few bits of tidying up.
What is the difference between this and `t as *const U`?

Alternately, can this be part of the `Unsize` trait?