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.
We'd have to update the locations to point to the new blocks as well. I will update that in the next PR.