Python3 support

As per #62 We need to add support for Python3.

This adds support for Py3 and keeps existing py2.6-2.7 support. There is a library that depends on a stale pull request, and it is something I really hope they merge in. And thanks for Neil @drnlm in fixing the last few incompatibilities.
Oops, that was as a way to do a quick debug, which resulted in me doing the python_2_unicode_compatible __str__.
Let me take it out.