This would conflict with all the nice implicit Orderings
available, but thanks to the magic of prioritized implicits
via subclassing we can make Ordered[A] => Ordering[A] only
turn up if nothing else works.

This would conflict with all the nice implicit Orderings
available, but thanks to the magic of prioritized implicits
via subclassing we can make Ordered[A] => Ordering[A] only
turn up if nothing else works. Since Ordered[A] extends
Comparable[A] anyway, we can throw in some Java interop too.