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.
Adjust borrow checker algorithm to address #4856 unsoundness,
and then adjust code to match. rs=unsound (will review post-landing)
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.