Move `position` and `rposition` methods to `ImmutableVector` trait
libstd: impl Num for BigUint/BigInt
libstd: impl `Orderable` for `BigUint`/`BigInt`
libstd: `Rational` requires `Integer` as type bounds instead of `Num`
libstd: `Ratio` requires `Clone` instead of `Copy`

This allows creating `Ratio<T>` which `T` is non-implicitly copyable types
such as `BigInt`.
libstd: Add tests for BigRational
Use static string with fail!() and remove fail!(fmt!())

fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
Fix cosmetics for fail!() calls
auto merge of #6357 : dotdash/rust/fixfmt, r=bstrie

fail!() used to require owned strings but can handle static strings
now. Also, it can pass its arguments to fmt!() on its own, no need for
the caller to call fmt!() itself.
rustpkg: Remove #[allow(vecs_implicitly_copyable)]
compiletest: Remove #[allow(vecs_implicitly_copyable)]
syntax: Remove #[allow(vecs_implicitly_copyable)]
rusti: Remove #[allow(vecs_implicitly_copyable)]
Remove vecs_implicitly_copyable from the compiler
Fix test fallout from removing vecs_implicitly_copyable
auto merge of #6434 : alexcrichton/rust/less-implicit-vecs, r=bstrie

This closes #5204 and #6421.

This also removes the `vecs_implicitly_copyable` lint (although now reading #6421, this may not be desired?). If we want to leave it in, it at least removes it from the compiler.
Get unit tests for rusti working

* They didn't work before, because the location of the tests caused the
  'sysroot' option to crate lookup to be wrong for finding the correct stage's
  core/std libraries. This moves the compiled tests from the $host/test
  directory into a $host/$stage/test directory. This means that the sysroot will
  be correct and the core/std libraries can actually be found
* The LLVM bindings apparently aren't threadsafe, so we can't run multiple tests
  in parallel.
Fix `use` statements with rusti
Add regression tests for various other rusti issues
Don't emit common warnings in rusti