rustc: Move code for discovering the crate entry point into its own pass

It doesn't have anything to do with resolve and the logic will likely get
more involved in the future, after #4433
rustc: Only accept main functions at the crate level. #4433
adapt to snapshot
desnapshot
new borrow checker (mass squash)
dataflow: fix flow of information through pattern variants
correct used_mut annotations for args, inherited case
rustc: remove modes
rustc: work around issue with default-method-simple, fix some rebase
errors
allover: numerous unused muts etc
borrowck: fix critical bug prevent us from ever using write guards :)
remove some unused mut decls
mk: install-runtime-target added to install.mk (pushing shared library to android target)
mk: test.mk expanded to ARM test automation
compiletest: expanded to ARM test automation
compiletest: fix to remove trailing whitespace
correct incorrect handling of overloaded operators, exposing various other bits of rot
keep old sort for stage0
rustc: print out filename/line-number when a borrow fails
add an option to debug borrows (RUST_DEBUG_BORROW) so you can
find out where the offending borrow occurred. This ... still needs
some work.