Reject casts to unsized types

This closes issue #17441 and generally gives more helpful diagnostics.
Trait boxes are fairly common, so it seems worthwhile to retain the suggestion in that case.  I agree that Box<[T]> is probably not a good suggestion.