Various Python 3 fixes

Various fixes, mostly trivial compatibility changes using six.

I removed some of the hard version pins from setup.py, to be able to
override them with fixed newer/development versions.

Pinning versions in setup.py should be avoided anyway. Especially in the
case of widgy, where a whole bunch of other setup and configuration
steps are required before it works in a Django project. Some
dependencies can be defined in the project's requirements.txt.

Python 3 a work in progress and requires bleeding edge versions of some
dependencies, and fixes of dependencies that are not yet in the official
repositories as of this commit. These changes got it up to a stage where
it no longer crashes on install, startup or basic admin page load and a
list of widgy content models in visible in the admin.