Python 3 support

Finally finish python 3 support and start running tests on Travis CI.

Uses `six` where necessary to smooth over the differences between major python versions and keep a single codebase.

The test matrix is getting rather large now, with 4 python versions and 3 pandas versions.  The 12 tests take a while to run on Travis.  In testing this I saw corner cases in both python and pandas, though, so it's hard to say we should drop something.