Initial HDFS Readers and Writers implementation.

Basic implementation of a writer and sequential and random readers that operate with streams on HDFS. These operate on Array[Byte] rather than specific kinds of data, so any data being sent in should already be in serialized form.
The idea is to be as generic as possible here. If the file already exists, the create call will fail. Since the file name is decided a layer above this one, whatever class is writing to HDFS can decide whether to append to a file or to create a new one. If in some case, we create new instances of this class with the same file name, we can still write data, just appending to an existing file. I don't see anything wrong with having this supported - if it is used, great else this code path is not exercised at all.