librustc: Always pass self ByRef.
Add test for #5321.
auto merge of #7410 : luqmana/rust/bare-self, r=catamorphism

Finally sorted this out. Fixes #5321, #4439, and #4850.
rustpkg: Implement RUST_PATH

Unfortunately, the main test for this is ignored due to #7071.

Closes #5682
Remove useless namegen thunk
auto merge of #7272 : Aatch/rust/namegen_thunk, r=thestinger

This removes the `namegen` thunk that was in `common.rs`. I also take the opportunity to refactor a few uses where we had a `str -> ident -> str` chain that seemed somewhat redundant to me.

Also cleans up some warnings that made their way in already.
auto merge of #7397 : catamorphism/rust/rustpkg_path, r=catamorphism

r? @brson Unfortunately, the main test for this is ignored due to #7071.

Closes #5682
librustc: Rename Owned to Send in the compiler
librustc: Change Const to Freeze in the compiler
librustc: Rename Const to Freeze
librustc: Change "Owned" to "Send" everywhere
librustc: Disallow "mut" from distributing over bindings.

This is the backwards-incompatible part of per-binding-site "mut".
libsyntax: Fix merge fallout
librustc: Add a small vector optimization for GEPi. Shaves a second off trans, I think?
libstd: Fix merge fallout.
libsyntax: Remove "copy" pattern bindings from the language
librustc: Remove the broken overloaded assign-ops from the language.

They evaluated the receiver twice. They should be added back with
`AddAssign`, `SubAssign`, etc., traits.
librustc: Rewrite reachability and forbid duplicate methods in type implementations.

This should allow fewer symbols to be exported.
librustc: Fix merge fallout.
Rewrite each_path to allow performance improvements in the future.

Instead of determining paths from the path tag, we iterate through
modules' children recursively in the metadata. This will allow for
lazy external module resolution.