Add NumCast trait for generic numeric type casts
core: Rewrite last_os_error in Rust for unix and provide access to errno (unix) and GetLastError (windows).
core: Rewrite last_os_error in Rust for windows as well.
rt: remove last_os_error and adjust tests.
Long lines.
rt: remove last_os_error from rustrt.def.in
librustc: Speed up moves a lot. r=nmatsakis
auto merge of #4881 : bjz/rust/incoming, r=catamorphism
auto merge of #4896 : pcwalton/rust/move-speedup, r=pcwalton

r? @nikomatsakis 

When you made the change to fix kinds in recursion, you stopped looking in the master cache. This patch fixes it.
auto merge of #4914 : nikomatsakis/rust/issue-4856, r=nikomatsakis

and then adjust code to match. rs=unsound (will review post-landing)

rs=unsound
auto merge of #4900 : luqmana/rust/core_os_errors, r=graydon

Rewrote the last pull request (#4859) to not require on llvm for core.

Also fixes #2269.
Permit lifetimes to appear in type parameter lists and after `&`.  Lifetimes in
type parameter lists are currently ignored, but `&'a T` is equivalent to
`&a/T`.
emacs mode: Highlight 'foo as a lifetime, not a character constant.
Make 'foo use font-lock-builtin-face, like module names, and make capitalized identifiers optionally use font-lock-type-face
Parse (and discard) lifetime declarations on function types