let's make it a bit more Python 3 compatible

Even though django-celery is not required to run Celery, we still use it because of the django models.

Unfortunately after migration to Python 3.4, we can no longer see the model descriptions in admin, so I've decorated models with python_2_unicode_compatible and converted all __unicode__ -> __str__. So it solves the main problem for us.

On top of that I wanted to confirm with unittests that change doesn't break anything, but those also required some maintenance to run both under Py2 and Py3, so there are also some small updates here and there.

Let me know if there is anything else required to get this merged.