Use operator sugar in the expansion of `#[deriving(PartialEq)]`
Fix fallout of changing the expansion of `#[deriving(PartialEq)]`
DSTify PartialEq, PartialOrd, Eq, Ord
Fix fallout of DSTifying PartialEq, PartialOrd, Eq, Ord
DSTify Box<T> implementation of PartialEq, PartialOrd, Eq, Ord
Add test for the first half of issue #15689

cc #15689
Fix tests
auto merge of #18467 : japaric/rust/eq, r=alexcrichton

`eq`, `ne`, `cmp`, etc methods now require one less level of indirection when dealing with `&str`/`&[T]`

``` rust
"foo".ne(&"bar") -> "foo".ne("bar")
slice.cmp(&another_slice) -> slice.cmp(another_slice)
// slice and another_slice have type `&[T]`
```

[breaking-change]