iterator: Add `IteratorUtil::max_by/min_by` method
Remove many shared pointers

Mostly just low-haning fruit, i.e. function arguments that were @ even
though & would work just as well.

Reduces librustc.so size by 200k when compiling without -O, by 100k when
compiling with -O.
auto merge of #7429 : Blei/rust/delete-shared, r=huonw

Mostly just low-haning fruit, i.e. function arguments that were @ even
though & would work just as well.

Reduces librustc.so size by 200k when compiling without -O, by 100k when
compiling with -O.
auto merge of #7414 : gifnksm/rust/max_by, r=catamorphism

`max_by` method returns the element that gives the maximum value from the specfied function.
`max_by`/`min_by` are convenient when you want to get the value which has greatest/smallest scores.

Inspired by [ruby's Enumerable module](http://ruby-doc.org/core-2.0/Enumerable.html).
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.