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

...rtByKey() until evaluation.
Any idea on volatile's impact on read performance? rangeBounds is read multiple times in getPartition.