Port to Python 3 (without using distribute's use_2to3)

This is an alternative to PR #33.

This ports the code to work on Python 3 (and continues to work on Python 2.6 and Python 2.7) by making a few tweaks to the code and does not rely on the extra translation step of distribute's `use_2to3` feature.

I think I prefer this to PR #33, but it's up to you.

With the `tox.ini` in PR #32, I get this output from tox:

```
marca@marca-mac:~/dev/git-repos/tldextract$ tox
...
  py26: commands succeeded
  py27: commands succeeded
  py33: commands succeeded
  pypy: commands succeeded
  congratulations :)
```