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.
librustc: Fix merge fallout and test cases.
librustc: Fix more merge fallout.
libextra: Fix even more merge fallout.
librustc: Fix even *more* merge fallout!
librustc: Fix even *MORE* merge fallout!
Rename Const/Owned in more places
auto merge of #7445 : Aatch/rust/rewrite-each-path, r=Aatch

Rebased + Fixed version of #7396