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
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
mk: minor fix for test.mk to support mutiple target test
compiletest: configurable test dir for ARM
mk: configurable android test directory
configure: CFG_ADB for adb added
mk: install.mk directory argument pass for install-runtime-target
compiletest: fix decision rule to run and cleanup
Remove pub from core::{unicode,cmath,stackwalk,rt}
compiletest: remove --host and cleanup
Allow non-literal static range pattern for match arms

Fix unintended error problem of:

static s: int = 1;
static e: int = 42;

fn main() {
    match 7 {
        s..e => (),
         ^~                 error: expected `=>` but found `..`
        _ => (),
    }
}
add #[non_owned] and #[mutable] attributes
mark Cell as non-Const with #[mutable]
factor out the has_attr checks
compile-fail tests for #[non_owned] and #[mutable]
core: Remove a call to `breakpoint` from a test

These breakpoints make it difficult to debug coretest