librustc: Don't allow enum struct variants to shadow structs.
Add test for duplicate definitions of structs and enum struct variants.
auto merge of #7267 : luqmana/rust/issue-5792, r=cmr

Fixes #5792