Separate borrowck into its own crate and remove dead code as well.
Revamped testing guide
auto merge of #19627 : steveklabnik/rust/testing_guide, r=cmr
auto merge of #19582 : nikomatsakis/rust/crateification, r=alexcrichton

r? @alexcrichton
libcore: use unboxed closures in `Option` methods
librustc_trans: fix fallout
Fix compile fail tests
libcore: use unboxed closures in `Result` methods
libcore: use unboxed closures in the fields of `Map`
libcollections: fix fallout
librustrt: fix fallout
libstd: fix fallout
libsyntax: fix fallout
librustc: fix fallout
librustc_trans: fix fallout
libcore: use unboxed closures in the fields of `Filter`
libunicode: fix fallout
librustc_trans: fix fallout
libcore: use unboxed closures in the fields of `FilterMap`
libcollections: fix fallout