[SPARK-1021] Defer the data-driven computation of partition bounds in so...

...rtByKey() until evaluation.
My understanding of getPartitions was that it executes once, and is therefore "allowed to be expensive".  Also, isn't rangeBounds generally only returning a reference to the array?  (except for the first time, where it's computed)