Python 3 support

That would be the initial version. All tests are passing, so should work.