Enhanced unicode support for models

Just the beginning of long way to fully support PY3 and PY2 regarding strings, unicode etc.

1. Use `from __future__ import unicode_literals` to inform python 2.x that we like it to behave like python 3.x
1. Use django's version of `python_2_unicode_compatible` (it is present in django 1.4 and higher)
1. Use django's version of `force_text` which is equivalent to `force_unicode` in some cases
1. Drop `u'...'` convention for marking strings as unicode (refer to point 1)
1. Make some minor style changes and cleanups.