[SPARK-4026][Streaming] Write ahead log management

As part of the effort to avoid data loss on Spark Streaming driver failure, we want to implement a write ahead log that can write received data to HDFS. This allows the received data to be persist across driver failures. So when the streaming driver is restarted, it can find and reprocess all the data that were received but not processed.

This was primarily implemented by @harishreedharan. This is still WIP, as he is going to improve the unitests by using HDFS mini cluster.
For now I am removing the mkdirs call. When running on minicluster it fails. Also we don't actually need to create a directory with HDFS. If we simply create a file in the directory, HDFS will create the directory with perms for the current user to read/write.