Python 3 compatibility

The absolute diff of this patch is rather large, but that's mostly due to the autopep8 and isort cleanups I did as part of it. Each little refactoring towards Python 3 compatibility is committed separately, so the commits are best read chronologically.

This is step 1 in making **furl** Python 3 compatible, which I'll submit a PR for soonish.

Fixes #5.