Python 3 support

Py3+2 support in one codebase is complete and passes all tests under both Py2 and Py3.
If you're okay with requiring the 'six' module, then this is ready for merge. Otherwise I can do the work to bring with_metaclass in; it is license-compatible (MIT) with blueprint.