Fix two minor issues in the tutorial.

Remove an extraneous 'then', and replace 'second' with 'first'.
core: fix windows breakage, r=burningtree.
Make either::{partition, flip, to_result} take their arguments by-value

Addresses an XXX

r=pcwalton
Rename option::get_default => get_or_default, get_zero => get_or_zero
Merge remote-tracking branch 'superoptimizer/master' into HEAD

Conflicts:
	doc/tutorial.md
Add Mark Lacey to AUTHORS
librustc: Stop generating first-class aggregates in visit glue, since they kick us off fast isel. Closes #4352. rs=minor-perf-improvement
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.