Py3k

Fixes #179

I realize this is a pretty fat change set, let me know if I need to change or fix anything. One change that might have major side-effects is my usage of django.utils.encoding.force_text() in place of django.utils.encoding.force_unicode() as the latter is only available in Python 2 and the former is only available since Django 1.5. If Django 1.4 support is critical, I can implement a comparable function (based on the Django 1.5 code) to handle unicode conversions in those instances.

I'm going to try merging onto master to see if the travis build succeeds, none of my changes would have resulted in the errors shown on the other pull request.