Python 3 support

I don't think it should be too hard---we don't have any dependencies.  The only thing that I think is a problem is the metaclass stuff, which we can use `six.with_metaclass` for.  If we drop support for Django 1.3, we can even use Django's vendored south.