Reject casts to unsized types

This closes issue #17441 and generally gives more helpful diagnostics.
Doing it for all unsized types was intentional.  It's my understanding that such a cast is never legitimate and will end up being rejected elsewhere in the type checker with a potentially less helpful diagnostic.