Support Python 3 using 2to3 - passes tests with py25-27,py32,pypy

This branch supports Python 2.5 through 3.2, passes all the tests when used with [2to3 port of Werkzeug](https://github.com/mitsuhiko/werkzeug/pull/231) and [itsdangerous](https://github.com/mitsuhiko/itsdangerous/pull/14) (In Python 3.1, it leaks memory for some reason)