Reject casts to unsized types

This closes issue #17441 and generally gives more helpful diagnostics.
I think the error message should only show the unsized type, not the actual type too. Otherwise its a bit confusing