Add inverse hyperbolic functions
Add ldexp and frexp functions
Remove unnecessary infinity check
auto merge of #6463 : bjz/rust/numeric-traits, r=thestinger

This is part of the numeric trait reform tracked on issue #4819
Move `position` and `rposition` methods to `ImmutableVector` trait
libstd: impl Num for BigUint/BigInt
Update .gitignore
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
Replace shared/unique by managed/owned in the tutorial
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