add `compare` module with comparators

Take two. The heap code will follow later.
I would rather this be based on Default. `IntervalHeap::with_cmp(Default::default())`; that way you can make a new Rev<Natural<T>> heap.