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]
Enhance auto_encode to take number of struct fields

emit_struct and read_struct takes an additional len:uint parameter which tells
us how many fields the struct we are working on has.

This is required to implement an Encoder for the msgpack [1] serialization
format. To serialize a struct with msgpack you have to use arrays and the size
of the array has to be know before each of the elements are written out. JSON
as an example doesn't have this problem as it uses '[' and ']' delimiters for
arrays.

[1]: www.msgpack.org
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.