[WIP] Reform comparison traits

It make checks up to this point, but I've only added a single run-pass test. Test suggestions are welcome!

Next, I'll replicate the `Equiv` [implementations](http://doc.rust-lang.org/std/cmp/trait.Equiv.html) with the new `PartialEq`, replace `equiv` method calls with the `==` operator sugar, and deprecate `Equiv`.

cc @alexcrichton @aturon @Gankro 
cc #19148
Do you mean that we should remove this module in favor of e.g.

``` rust
impl<A, B, L, R> PartialEq<R> for L where L: Iterator<A>, R: Iterator<B>, A: PartialEq<B> { /* ... */ }
```

? I think that `impl` doesn't currently compile because of coherence/conflicting implementations, but it will work when the `A` in `Iterator<A>` becomes an associated output type. Not 100% sure, let me check.