Initial implementation of HDFSBackedBlockRDD.

This RDD pulls the block from BlockManager, if it exists in the Block Manager. If it is not found, the data is read from a file on HDFS.
Looks like the DAGScheduler will take care of a situation where preferred locations is empty.  Correct me if I wrong, but it looks like all we need to do is to return the Seq from the locations_ map if it exists, else return empty Seq.