Type conversions

Casting and coercions. Adds custom DST coercions for smart pointers. Otherwise, mostly descriptive, with a few bits of tidying up.
No, I don't think so. `U` is just the pointed-to data, it does not need to be coercible. The `RcBox` is unsized using the `fat_pointer_convert` intrinsic and automatically has the required `Unsize` bound.