Porting to Python3

As per issue #5, I've started working on the Python3 port.