Reject casts to unsized types

This closes issue #17441 and generally gives more helpful diagnostics.
I'll suggest using an implicit coercion if the cast type is not a trait