Add Six to the runtime requirements
Use six's iterator compatibility functions
Add "from __future__ import unicode_literals" to every python file
Use six's metaclass helpers

Metaclasses are only used by the DeclEnum class.
Force absolute imports
Force Unicode to test files, and manually mark strings as unicode in setup.py
Don't use "raise ... from ..." syntax in Python 2
Account for modules/functions being renamed between Python versions
Fix iterator edge cases
Convert config.py to use explicit unicode
Convert evesrp/__init__.py to use explicit unicode literals
Wean killmail.py on to explicit unicode support

A wrapper around urlparse was written to ensure the output was in unicode.
Use explicit unicode literals in json.py and transformer.py
Shift views/requests.py to using explicit unicode literals
Switch enum.py and models.py to use explicit unicode litarals
Use explicit unicode literals in the auth package
Explicit unicode literals for views.login
views.divisions now uses explicit unicode
views.api now uses explicit unicode
Provide a replacement for date time.timezones.utc

It seems it was aded in Python 3, so I have to provide my own implementation.