Rename iterators for consistency

Rename existing iterators to get rid of the Iterator suffix and to
give them names that better describe the things being iterated over.
xfail shootout-reverse-complement on android
Move macro-crate to run-pass-fulldeps and force-host the aux build
Make WindowsPath::new("C:foo").root_path() return Some("C:")
auto merge of #11001 : DaGenix/rust/iter-renaming, r=alexcrichton

Most Iterators renamed to make their naming more consistent. Most significantly, the Iterator and Iter suffixes have been completely removed.
auto merge of #11605 : alexcrichton/rust/issue-9582, r=brson

Closes #9582
auto merge of #11614 : remen/rust/patch-1, r=alexcrichton

#[cfg(test)] was being interpreted as starting a header
doc: fix dangling links in rust.md

Fixes #11559 (not that the manual couldn't use a review).
auto merge of #11622 : bjz/rust/simplify-primitive-trait, r=brson

As part of #10387, this removes the `Primitive::{bits, bytes, is_signed}` methods and removes the trait's operator trait constraints for the reasons outlined below:

- The `Primitive::{bits, bytes}` associated functions were originally added to reflect the existing `BITS` and `BYTES`statics included in the numeric modules. These statics are only exist as a workaround for Rust's lack of CTFE, and should be deprecated in the future in favor of using the `std::mem::size_of` function (see #11621).

- `Primitive::is_signed` seems to be of little utility and does not seem to be used anywhere in the Rust compiler or libraries. It is also rather ugly to call due to the `Option<Self>` workaround for #8888.

- The operator trait constraints are already covered by the `Num` trait.
auto merge of #11629 : brson/rust/whattayaknowitsmoreandroidfixes, r=cmr
auto merge of #11619 : adridu59/rust/patch-md, r=cmr

Noticeably necroes #10892.
Also closes #11559.

r? @alexcrichton
Expose platform independent path separators
Ignore all newline characters in Base64 decoder

Ignore all newline characters in Base64 decoder to make it compatible
with other Base64 decoders.
Forbid unnecessary visibility on view items

For `use` statements, this means disallowing qualifiers when in functions and
disallowing `priv` outside of functions.

For `extern mod` statements, this means disallowing everything everywhere. It
may have been envisioned for `pub extern mod foo` to be a thing, but it
currently doesn't do anything (resolve doesn't pick it up), so better to err on
the side of forwards-compatibility and forbid it entirely for now.

Closes #9957
rustc: Clean up error reporting

This commit re-works how the monitor() function works and how it both receives
and transmits errors. There are a few cases in which the compiler can abort:

1. A normal compiler error. In this case, the compiler raises a FatalError as
   the failure value of the task. If this happens, then the monitor task does
   nothing. It ignores all stderr output of the child task and it also
   suppresses the failure message of the main task itself. This means that on a
   normal compiler error just the error message itself is printed.

2. A normal internal compiler error. These are invoked from sess.span_bug() and
   friends. In these cases, they follow the same path (raising a FatalError),
   but they will also print an ICE message which has a URL to go report a bug.

3. An actual compiler bug. This happens whenever anything calls fail!() instead
   of going through the session itself. In this case, we print out stuff about
   RUST_LOG=2 and we by default capture all stderr and print via warn!() so it's
   only printed out with the RUST_LOG var set.
Disallow implementation of cross-crate priv traits

Turns out we were just forgetting to encode the privacy for trais, and
everything without privacy defaults to public!

Closes #11593
Add a test for closed issue #9259

This must have been fixed in some recent trans refactor/rewrite, hurray!

Closes #9259
Added benchmark for pow and pow_with_uint
Replace old pow_with_uint with the new pow func

There was an old and barely used implementation of pow, which expected
both parameters to be uint and required more traits to be implemented.
Since a new implementation for `pow` landed, I'm proposing to remove
this old impl in favor of the new one.

The benchmark shows that the new implementation is faster than the one
being removed:

test num::bench::bench_pow_function               ..bench:      9429 ns/iter (+/- 2055)
test num::bench::bench_pow_with_uint_function     ...bench:     28476 ns/iter (+/- 2202)
auto merge of #11606 : alexcrichton/rust/issue-9259, r=brson

This must have been fixed in some recent trans refactor/rewrite, hurray!

Closes #9259