Begin experimenting with comparators

This adds a `Cmp` trait for comparators and uses it to parameterize `libcollections`'s `BinaryHeap`.
Agreed. This is a widespread problem in Rust's standard library right now with wrapper types, especially with regard to iterators. Perhaps I can factor out some of the redundancy with a decorator-like design.