librustc: Don't allow newtype or unit-like structs to shadow other names in the value namespace.
librustc: Better errors for duplicate definitions.
Add test for #7044.
auto merge of #7046 : luqmana/rust/issue-7044, r=sanxiyn

Fixes #7044.