Type conversions

Casting and coercions. Adds custom DST coercions for smart pointers. Otherwise, mostly descriptive, with a few bits of tidying up.
Add some casts I missed the first time around and a few misc. corrections.
Merge branch 'ty-convert' of https://github.com/nick29581/rfcs into nick29581-ty-convert
RFC 401 is type conversions