Promote unreachable code to being a lint attribute
Fix a bug with HashMap::consume
Rewrite deriving(Decodable, Encodable)

Now it uses the generic deriving code and should in theory work in all cases.
xfail-fast the deriving test
Optimize vec::from_elem with manual inlining (borrowck 1.85x speedup on libstd)
auto merge of #6876 : cmr/rust/from_elem_opts, r=Aatch

borrowck 1.85x speedup on libstd
auto merge of #6851 : alexcrichton/rust/bugfixes, r=pcwalton

Closes #5090 by using the excellent new generic deriving code

Promotes the unreachable code attribute to a lint attribute (instead of always being a warning)

Fixes some edge cases when creating hashmaps/hashsets and also when consuming them. (fixes #5998)
Better optimization pipeline
auto merge of #6881 : Aatch/rust/new-passes-2, r=thestinger

This is a better pipeline, both faster-running and produces faster code.

For some reason the `mergefunc` pass screws over resolve. I have no idea why though.
librustc: Don't require `pub extern` to make extern functions visible
Remove all uses of `pub impl`. rs=style