Forbid unsized structs which are non-instantiable

Closes #16977 

r?
`&=` is not short-circuiting. `check_ty_may_be_sized()` is not a side-effect-ful function. This should be

```rust
sized_ok = sized_ok && check_ty_may_be_sized(ccx.tcx, ctor_ty);
```