Forbid coercing unsafe functions to closures

Closes #9582
Add a generic power function

The patch adds a `pow` function for types implementing `One`, `Mul` and
`Clone` trait.

The patch also renames f32 and f64 pow into powf in order to still have
a way to easily have float powers. It uses llvms intrinsics.

The pow implementation for all num types uses the exponentiation by
square.

Fixes bug #11499
Fixup in guide-testing.md

Added back-quotes around #[cfg(test)] which was otherwise
being interpreted as starting a header
Use the libsyntax PkgId parser in Rustpkg, but keep Rustpkg's version smarts.

This fixes a bug where new syntax crate IDs would cause rustpkg to fail to
build crates.
Change some rustpkg tests to use new crate_id syntax.
Warning police.
Simplify std::num::Primitive trait definition

This removes the `Primitive::{bits, bytes, is_signed}` methods and removes the 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 probably 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.
Add FIXME comments regarding issue #11526.
auto merge of #11503 : FlaPer87/rust/master, r=huonw

The patch adds the missing pow method for all the implementations of the
Integer trait. This is a small addition that will most likely be
improved by the work happening in #10387.

Fixes #11499
auto merge of #11086 : metajack/rust/rustpkg-new-crateid-syntax, r=cmr

...arts.

This fixes a bug where new syntax crate IDs would cause rustpkg to fail to
build crates.
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
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
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
Expose platform independent path separators