Initial work

I used nose for testing and followed a much more TDD workflow than I usually do.

Test coverage is very good! On the flip side, I don't know if this actually works yet :)
Mutable default args can lead to gross bugs (as the function closes around the dict); are you using that mutability on purpose? If not, could be better to set to `None` and in the function body instantiate a dict instead, something as simple as:

```python
def make_httpfs_url(path, user_params=None):
    params = {'user.name': FLAGS.hdfs_user, 'op': 'OPEN'}
    params.update(user_params or {})
```