Remove `virtual` structs from the language
Remove `virtual` struct tests
Remove `virtual` structs from the reference
auto merge of #17952 : jakub-/rust/remove-virtual-structs, r=eddyb

Closes #17861.
Part of #6993. Moved a bunch of uses of Ident to Name