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.
Yeah, I am strongly thinking of making the simplifyiing assumption that this feature is not supported with storage level deserialized. Other the code get complex, here, as well as, 

I think this is a fair assumption to make as of now for simplicity. Later we can add support for that. What do you think?