add `compare` module with comparators

Take two. The heap code will follow later.
So you mean something like:

```rust
impl<T, C: Compare<T> + Default> IntervalHeap<T, C> {
    pub fn new() -> IntervalHeap<T, C> {
        IntervalHeap::with_cmp(Default::default())
    }
}
```

How would you word the doc comment for that method, particularly regarding the ordering?