Reform power_of_two methods for perf increase & semantic change to consider 0 not a power of 2.

Vec panics when attempting to reserve capacity > int::MAX (uint::MAX / 2).
Remove feature(import_shadowing) from all crates.
rustc: don't allow(non_camel_case_types) in resolve.
middle: resolve: fix inconsistencies around ExportMap and remove the 2 suffix.
rustc: middle: move DefMap from resolve to def.
rustc: middle: move TraitMap from resolve to ty.
rustc: middle: use cheaper Name in resolve::Export instead of String.
rustc: middle: move Export and ExportMap from resolve to def.
rustc: middle: move TraitItemKind from resolve to def.
rustc: middle: move some types from resolve to privacy.
Split resolve from rustc::middle into rustc_resolve.
rustc_resolve: move unused import checking into its own module.
rustc_resolve: move export recording into its own module.
Fix the fallout of removing feature(import_shadowing).
Fix more import_shadowing fallout in collections.
Fix fallout of removing import_shadowing in tests.