Implement BigInt and BigUint.
Move BigUint and BigDIgit to std::bigint.
Convert std::bigint to explicit self.
Impl Zero, One of BigInt, BigUint
Convert @[BigDigit] to ~[BigDigit]
Trivial cleanup: use enum_is_univariant; no functional change intended.
Make consts of degenerate nullary enums not ICE.

This makes the const construction code match the logic in type_of.
Add a test for nullary univariant enums.
rt: Stop zeroing out all allocations. Unobservable perf win. Closes #2682. rs=negligible-perf-win
librustc: Fix unconditional ty_to_str call in ty.rs. Was heaviest path in allocation. Negligible perf win. rs=perf-fix
librustc: Remove some string allocations. rs=perf
librustc: Convert some large structural records over to structs. rs=perf

No effect on compile-time performance.
librustc: Refactor language items to have IDs. rs=refactor

Preparation for fixing the performance problems with language item collection.
librustc: Encode language items into a special lookup table. 9% improvement in hello world compile time.
librustc: Fold rt items into lang items. Shaves another 10% or so off hello world compile time.
librustc: Remove unused `mod_path_map`. This was expensive to build. Saves another 15% or so. r=tjc
Merge pull request #4358 from jld/constenum-unit

Fix consts of nullary univariant enum type.
Merge pull request #4357 from jld/constenum-bonus-fix

Trivial cleanup: use enum_is_univariant; no functional change intended.
librustc: Make vectors no longer implicitly copyable in rustc. r=graydon

~20% perf win for trans on -O0, with other minor improvements across the board.
No effect on -O2.
fmt: replace Conv record with struct Conv