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.
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
Add lint check for negating uint literals and variables.

See #11273 and #13318
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.
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.
auto merge of #13899 : bjz/rust/simd, r=pcwalton

cc. @pcwalton
auto merge of #13903 : alexcrichton/rust/issue-13890, r=thestinger

The logic of the custom realpath function in metadata::loader was incorrect, but
the logic in util::fs was correct.

Closes #13890
auto merge of #13868 : FlaPer87/rust/opt-in-phase1, r=alexcrichton

This is a first patch towards an opt-in built-in trait world. This patch removes the restriction on built-in traits and allows such traits to be derived.

[RFC#3]

cc #13231

@nikomatsakis r?
auto merge of #13904 : pcwalton/rust/box, r=alexcrichton

r? @alexcrichton

RFC#14 

Issue #13885.
auto merge of #13773 : brson/rust/boxxy, r=alexcrichton

`box` is the way you allocate in future-rust.