Strip left slash in `HadoopFS._base()`

If the second argument to os.path.join starts with a forward slash, the
first argument is not included in the returned path, which means we
could end up operating outside of the sandbox directory.
Flesh out `HadoopFS._status()` implementation

Optionally raise ResourceNotFoundError if the given path does not
exist. Also set the size field to the length returned by the WebHDFS.
Propagate exceptions for `HadoopFS.getinfo()`
Don't convert to remote path in `HadoopFS.ilistdir()`
Flesh out `HadoopFS.ilistdirinfo()` implementation
Flesh out `HadoopFS.remove()` implementation
Flesh out `HadoopFS.removedir()` implementation
Minimal implementaion of a HDFS file-like object
Flesh out `HadoopFS._list()` helper method
Flesh out `HadoopFS.makedir()` implementation
Implement `HadoopFS._is_dir_file()` helper

This methods allows us to determine if a path is a file or a directory
with a single HTTP call.
Flesh out `HadoopFS.rename()` implementation
Flesh out `HadoopFS.open()` implementation
Flesh out HadoopFS constructor

The base path is created if needed, and the HDFS user set to the
current user (only HDFS security off is supported at the moment).
Tear down test HDFS filesystem after each test
Skip HadoopFS tests that require seek or truncate
Create a random HDFS folder for unit testing
Docstring for `HadoopFS.isfile()`
Docstring for `HadoopFS.isdir()`
Docstring for `HadoopFS.ilistdir()`