Port to Python 3 using distribute's use_2to3

Here's a port to Python 3 using distribute's `use_2to3` feature.

It turned out to be a little messier than I had hoped, because you were pulling the version and docstring in other files from `setup.py` -- that's a nice practice but it doesn't work well with `use_2to3` because it tries to pull stuff from modules before they've been converted with `2to3`. So I have to do some tricky things to get those version and docstring attributes.

It might be nice to do a "proper" port by making the code work with both Python 2 and Python 3 and not using `use_2to3`. That would involve more changes but it would remove the dependency on `2to3`. Would you prefer that approach?