Create OrderingRangePartitioner which operates RDDs that are not pairs.

We want this for catalyst to avoid having to needlessly create / get rid of pairs in order to do sorting.

I also changed the `<% Ordered[K]` to instead take an `implicit Ordering[K]`.  I think this is preferable as it makes it easier to override the default ordering, and it avoids the use of view bounds, which [might be deprecated at some point](https://issues.scala-lang.org/browse/SI-7629).

While this is a slight API change, as far as I can tell implicits that are in `predef` make this source compatible with the old API.  If this is a problem though I can change that back.