Forbid unsized structs which are non-instantiable

Closes #16977 

r?
OK, I'll stick an 'a' in. 'size' does feel different to 'value' to me, but I can't explain why.