Partially de-vec-mut librustc
RIMOV core::run
RIMOV core::rand
RIMOV core::io
RIMOV core::hash
RIMOV core::vec

Also remove as many uses as possible of vec::cast_to_mut and
cast_from_mut
auto merge of #4908 : bstrie/rust/rimov3, r=pcwalton

This patch finishes removing inner vector mutability from the vast majority of the compiler. Exceptions:

* core::dvec: ideally this entire type will be able to be replaced by `~[]`, but Niko asked me to hold off on removing Dvecs until he makes some fixes to borrowed pointers. 
* liveness: liveness.rs is an impenetrable neutron star of deprecated semantics.
* compile-fail: I'm not sure if a lot of these tests are testing inner mutability or mutability in general. I figure that RIMOVing this folder should wait until this syntax is removed from the parser.

I also took this chance to remove many of the inner-mutability-related functions from core::vec, or as many uses of those functions as possible where still necessary. consume_mut and append_mut have been axed. cast_to_mut and cast_from_mut are still needed in a few places.
libsyntax: Pretty print using the new impl syntax. r=brson
auto merge of #4884 : pcwalton/rust/pretty-print-new-impl-syntax, r=pcwalton

r? @brson
Remove die!, raplace invocations with fail! Issue #4524 pt 3
auto merge of #4905 : brson/rust/issue4524, r=brson

Rebase of #4895
auto merge of #4922 : jbclements/rust/add-deriving-eq-to-asts, r=catamorphism

r?

Apply deriving_eq to the data structures in ast.rs, and get rid of the custom definitions of eq that were everywhere. resulting ast.rs is about 400 lines shorter.

Also: add a few test cases and a bunch of comments.

Also: change ast_ty_to_ty_cache to use node ids rather than ast::ty's. I believe this was a suggestion related to my changes, and it appears to pass all tests.

Also: tiny doc fix, remove references to crate keywords.
started work on enriching idents
Cleanup, commenting, trivial renaming
working on adding syntax contexts to identifiers
commenting
more info on overly deep expansion