Python 3 support

Adds support for Python 3 (3.2 and 3.3).

The technique used here is a single shared source: the codebase runs on both Python 2 and Python 3, thanks to careful coding and a bit of help from [six](http://pythonhosted.org/six/).

I've also introduced a [tox](http://tox.rtfd.org/) config to aid in testing on both Py2 and Py3, and also updated the Travis config to do the same.

One caveat is that this drops support for Python 2.6 (because of the use of OrderedDict in the tests, which is 2.7+). If Python 2.6 support is important let me know and I'll update the PR to support it.

Along the way, I've fixed #18. If you want this in a separate pull request let me know and I'll break it out.