Py3

Native support for Python 3 is close! (Issue #63). This PR is quite small (in terms of LoC, not time :S), but touches a little bit of everything so it's easy for it to become stale.

Feel free to  make comments/questions! I'll expand about the changes in another moment

# Outstanding issues

## Test suite
98% is green!
- Two failures are exposed in CompressedTrie (issue #270). They could be skipped till a bug fix is ready.
- Thirteen errors in app/util. I'm lost here. Crazy errors like trying to open or close files that don't exist. Oh,
and exceptions are raised during the handling of an exception raised during the handling of another exception. Yes, three levels deep.

## Doctests
I haven't worked on doctests because I need a way to automatically import stuff into their namespace (for instance to make sure StringIO can be used). It can be done because numpy docstrings use np functions and StringIO without importing them. I'd rather disable doctests in py3 for now than make this a blocker.