Refactor webhdfs.py

I refactored the whole file using the hdfs library instead of whoops because apparently whoops has some problems when uploading files.

I also added a basic WebHdfsTarget that provides basic read and write operations. The WebHdfsTarget is based on the S3Target. A simple example would be:

from luigi import webhdfs

target = webhdfs.WebHdfsTarget('TEST/file.py')

output = target.open('w')
output.write('pew pew pew\npow pow pow\n')
output.write('piw piw piw\npow pow pow')
output.close()

target = webhdfs.WebHdfsTarget('TEST/file.py')
input = target.open('r')
print input.read()
print [i for i in input]
input.close()

Output:

pew pew pew
pow pow pow
piw piw piw
pow pow pow
['pew pew pew', 'pow pow pow', 'piw piw piw', 'pow pow pow']
Merge pull request #504 from danielfrg/patch-1

Refactor webhdfs.py
Annotating tests needing the minicluster