Python 3 support

(I don't expect this to work, but I want to see what Travis makes of it)