rustc: Compress bytecode files in rlibs

These are only ever used with LTO, so there's no need for reading them to be
speedy.
mk: Don't install host rlibs

You rarely want to statically link against librustc and friends, so there's no
real reason to install the rlib version of these libraries, especially because
the rlibs are massive.
Test nested `proc` can access outer owned data

Fixes #10682
Represent lifetimes as Names instead of Idents

Closes #7743.
extra: rename Uuid::to_bytes() to as_bytes()
std: minor whitespace cleanup
syntax: Allow syntax extensions to have attributes
syntax: add syntax extension helper to make simple view items
std: rewrite Hash to make it more generic

This patch merges IterBytes and Hash traits, which clears up the
confusion of using `#[deriving(IterBytes)]` to support hashing.
Instead, it now is much easier to use the new `#[deriving(Hash)]`
for making a type hashable with a stream hash.

Furthermore, it supports custom non-stream-based hashers, such as
if a value's hash was cached in a database.

This does not yet replace the old IterBytes-hash with this new
version.
remove the TyDesc from TypedArena

This prevents generating visit glue when using a TypedArena. The problem
still exists for the untyped Arena.
Force all lang items to be reachable

This prevents linker errors as found in #11591

Closes #11591
auto merge of #11603 : alexcrichton/rust/issue-11591, r=brson

This prevents linker errors as found in #11591

Closes #11591
std: fix the hash doctest
auto merge of #11863 : erickt/rust/hash, r=acrichto

This PR merges `IterBytes` and `Hash` into a trait that allows for generic non-stream-based hashing. It makes use of @eddyb's default type parameter support in order to have a similar usage to the old `Hash` framework.

Fixes #8038.

Todo:

- [x] Better documentation
- [ ] Benchmark
- [ ] Parameterize `HashMap` on a `Hasher`.
auto merge of #12448 : alexcrichton/rust/smaller-rust, r=brson

Two optimizations:

1. Compress `foo.bc` in each rlib with `flate`. These are just taking up space and are only used with LTO, no need for LTO to be speedy.
2. Stop install `librustc.rlib` and friends, this is a *huge* source of bloat. There's no need for us to install static libraries for these components.

cc #12440
auto merge of #12444 : thestinger/rust/arena, r=huonw

This prevents generating visit glue when using a TypedArena. The problem
still exists for the untyped Arena.
auto merge of #12450 : FlaPer87/rust/issue-10682, r=alexcrichton

Fixes #10682
auto merge of #12451 : edwardw/rust/ident-2-name, r=cmr

Closes #7743.
Move std::{trie, hashmap} to libcollections

These two containers are indeed collections, so their place is in
libcollections, not in libstd. There will always be a hash map as part of the
standard distribution of Rust, but by moving it out of the standard library it
makes libstd that much more portable to more platforms and environments.

This conveniently also removes the stuttering of 'std::hashmap::HashMap',
although 'collections::HashMap' is only one character shorter.