Port to Python 3.3+

A massive PR to port to Python 3.3+ with the same codebase (using the 'six' library).

This PR will require some changes to the test/CI setup to account for the switch to VCR.py for HTTP request caching.