Begin experimenting with comparators

This adds a `Cmp` trait for comparators and uses it to parameterize `libcollections`'s `BinaryHeap`.
The names are definitely up for change. I'm leaning toward `Compare` to go along with the recommendations in [RFC 344](https://github.com/rust-lang/rfcs/blob/master/text/0344-conventions-galore.md#trait-naming).