Begin experimenting with comparators

This adds a `Cmp` trait for comparators and uses it to parameterize `libcollections`'s `BinaryHeap`.
Without it, I ran into some type inference problems with `rev`. Let me see if I can generate an example.