Python 2/3 compatibility

Uses [Python-Future](http://python-future.org/) to use a single, clean Python 3.x-compatible codebase to support both Python 2 and Python 3 with minimal overhead.