WIP: Use typegroup mechanism for ordinary structs
Prior to the `typegroup` mechanism, we did not support recursive
structs in the runtime. However, it was syntactically possible to
write some forms of these as well as other code that would operate
on the type before it was fully defined. With `typegroup` we now
have well-defined semantics for such cases, but are so far not using
them for ordinary struct. The idea behind this PR is to see what would
break if we change that (equivalently wrap all `struct` definitions
in an implicit `typegroup`). It has the dual advantage of exercising
the typegroup code more. If all works well, this fixes #60919.