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.
You will also have to override preferred locations. If the blocks are not in the block manager (that is not preferred location from block manager), it has to fall back to HDFS locations.