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
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.
test: Add test for #7563. Closes #7563
auto merge of #8620 : brson/rust/issue-7563, r=alexcrichton
auto merge of #8626 : kballard/rust/issue-8615, r=catamorphism

Fixes #8615.
auto merge of #8627 : kballard/rust/fix-rusti, r=catamorphism

Commit 0932ab336 accidentally broke rusti by making it parse the binary
name as the input, instead of parsing what the user typed.
auto merge of #8666 : nikomatsakis/rust/issue-3678-extern-fn-types, r=pcwalton

Change the type of crust fns like this one:

    extern fn foo() { ... }

from `*u8` to `extern "C" fn()`.

r? @pcwalton (or whomever)
auto merge of #8642 : sanxiyn/rust/arm-test, r=catamorphism

`stdtest` and `extratest` expects to be able to write to `tmp` directory under the current working directory, so the first commit creates `tmp` directory and changes the directory before running tests.

The second commit adds `--bench` argument to test runs and copies metrics from the remote device.
auto merge of #8669 : lkuper/rust/infer-refactor, r=nikomatsakis

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 attempt to run tidy over libuv or llvm
auto merge of #8688 : alexcrichton/rust/fix, r=graydon