Begin experimenting with comparators

This adds a `Cmp` trait for comparators and uses it to parameterize `libcollections`'s `BinaryHeap`.
You can make it `Compare<Rhs, Lhs>` without requiring `B: Ord<A>`.