Don't skip token after @'static

Fixes #8615.
Fix broken rusti

Commit 0932ab336 accidentally broke rusti by making it parse the binary
name as the input, instead of parsing what the user typed.
Android: Change directory before running tests
Android: Run benchmarks and copy metrics
Moved .sleep() to Timer.
Add assert_once_ever macro. Close #7748. (fixme cf #8472)
small cleanups in task/spawn.rs
Fix crash(!) by using the *Rust fn type* not the extern fn type

cc #3678
Change type of extern fns from `*u8` to `extern "ABI" fn`

cc #3678
Adjust callbacks in the libraries for the new type of extern fns

cc #3678
Refactor type combining to use default methods.  Woohoo!

This commit removes the "super_*" functions from
typeck::infer::combine, and adds them as default methods on the
Combine trait instead, making it possible to remove a lot of
boilerplate from the various impls of Combine.

I've been wanting to do this for over a year.  In fact, it was my
original motivation for default methods!

It might be possible to tighten things up even more, but this is the
bulk of it.
Don't fail in port.try_recv() the second time. Close #7800.
Only bug on self-not-mapped-to-def if no previous errors were present. Close #6642.
On Windows, use g++ for linking, instead of gcc.
This is required in order to produce linked modules that perform correct registration of unwind tables.
Un-disable stack unwinding on Windows.
Emit unwind info in rustrt assembly files on Windows.
Compile via external assembler on Windows.
Enabled tests.
Cleanup assembly source.
debuginfo: Big cleanup refactoring and support for foreign_item_fn.