Add Python 3 support, while retaining Python 2 compatability

I did consider titling this pull request "Yet Another Python 3 Pull Request", seeing as there seem to be about 3 different ports floating about.

This pull request adds support for Python 3 while retaining Python 2.6+ support. This does mean that Python 2.5 and lower will not work (due to exception catching syntax changes), but if needs be, I can modify the pull request to support them also (it won't be pretty code though).

The change also adds the requirement of the [six library](http://pythonhosted.org/six), but again, if that is undesirable, I can change that.

Other than that, everything is identical. All data coming in gets converted to unicode (with the exception of the raw data when getting an image). There is still a bug relating to the use of ascii in put_photo, but pull request #80 deals with that.

I have tested most methods on Python 3.3, and all seems fine. The lack of a test suite makes it rather hard to verify if all is well, but there are no changes to the Python 2.x code path that should break anything.