SPARK-1767: Prefer HDFS-cached replicas when scheduling data-local tasks

This change reorders the replicas returned by
HadoopRDD#getPreferredLocations so that replicas cached by HDFS are at
the start of the list.  This requires Hadoop 2.5 or higher; previous
versions of Hadoop do not expose the information needed to determine
whether a replica is cached.
"New" is confusing because it conflicts with the "New MR API meaning below" and "Classes" is confusing because some of the fields here are methods, not classes.

Call this something like "LocationInfoReflections" and add a comment about why it's needed?