Allow manual implementations of built-in traits

[RFC #3]

cc #13231
Add more comprehensive unit tests for SIMD binops
BigUint always use u64 as the internal machine unsigned integer

This change allow a speedup of ~1.5 on shootout-pidigits on a i32
system.  `DoubleBigDigit` is used to abstract the internal
unsigned integer used in computation to simplity future
architecture specialization.

`BigDigit::from_uint` and `BigDigit::to_uint` become
`BigDigit::from_doublebigdigit` and `BigDigit::to_doublebigdigit`.

[breaking-change]
Allow built-in traits to be derived

[RFC #3]

cc #13231
Implement ToJson for Vec<T>

Now that ~[T] is obsolete, we need to allow to_json() to work for
vectors.
rustdoc: escape shown input to prevent injection
Implement comparison operators for int and uint SIMD vectors
rustc: Use the "real" realpath function

The logic of the custom realpath function in metadata::loader was incorrect, but
the logic in util::fs was correct.

Closes #13890
Provide a note if method lookup fails and there are static definitions with the same name.
Add lint check for negating uint literals and variables.

See #11273 and #13318
rustc: Crawl static initializers for reachability

This ensures that private functions exported through static initializers will
actually end up being public in the object file (so other objects can continue
to reference the function).

Closes #13620
auto merge of #13579 : hirschenberger/rust/lint_unsigned_negate, r=alexcrichton

See #11273 and #13318
librustc: Implement the `Box<T>` type syntax. RFC #14. Issue #13885.
libsyntax: Add `box PAT` to the pattern grammar. RFC #14.
auto merge of #13880 : TeXitoi/rust/biguint-always-use-u64, r=pcwalton

This change allow a speedup of ~1.5 on shootout-pidigits on a i32
system.  `MachineUint` is used to abstract the internal machine
unsigned integer to simplity future architecture specialization.
emacs: Add 'box' to keywords
Replace most ~exprs with 'box'. #11779
auto merge of #13891 : hjr3/rust/serialize-vec, r=pcwalton

Now that ~[T] is obsolete, we need to allow to_json() to work for
vectors.
Refactor `rslt` to `Result::new`
auto merge of #13899 : bjz/rust/simd, r=pcwalton

cc. @pcwalton