Disallow coercions from [T, ..n] to &[T]or *[T]

[breaking-change]

Insert an `&` to fix
Regression test
libcore: add num::Int::pow() and deprecate num::pow().

Signed-off-by: NODA, Kai <nodakai@gmail.com>
Windows and OS X fallout
auto merge of #18645 : nick29581/rust/coercions-1, r=alexcrichton

r?

(I realise this needs a rebase, but I will probably have to chop it up in order to land and I'd like to get r+ first so I can do that quicker)
Move trans, back, driver, and back into a new crate, rustc_trans. Reduces memory usage significantly and opens opportunities for more parallel compilation.
auto merge of #19031 : nodakai/rust/libcore-pow-and-sq, r=bjz

[breaking-change]

Deprecates `core::num::pow` in favor of `Int::pow`.
auto merge of #19070 : nikomatsakis/rust/crates, r=nikomatsakis

Reduces memory usage significantly and opens opportunities for more parallel compilation.

This PR was previously #19002 but I closed it because bors didn't seem to recognize the `r+` annotations there.
Make `Result::{and, and_then}` generic over error types implementing FromError

This change may result in additional type annotations to be required when
using those two methods, in particular when the error type of the Result argument
is not known.

[breaking-change]