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
fmt: replace parse_* structural records with struct Parsed<T>
fmt: simplify parse_type
fmt: simplify parse_flags
fmt: simplify parse_count
fmt: simplify parse_precision