Type conversions

Casting and coercions. Adds custom DST coercions for smart pointers. Otherwise, mostly descriptive, with a few bits of tidying up.
Hmm, I probably shouldn't allow casts from &[V] since that is a fat pointer, better to use a function for that. And I guess the same goes for `&str` to `*u8`.