Forbid unsized structs which are non-instantiable

Closes #16977 

r?
Yeah, I'm not sure how helpful that restriction is but if we were to lift it, I'd be much more in favour of leaving the restriction in but also having a way of expressing merging several diagnostic codes into one to make sure when we reuse a code we really mean it.