Update docs about __unicode__ and __str__

Give 2 examples with both python 2 and 3 and explains __str__ and unicode__
Change encoding functions to new django 1.4/1.5

smart_str was renamed smart_bytes in django 1.5, but this also works with django 1.4.

The "f.__unicode__()" is unadapted for python 3 as python 3 doesn't accept __unicode__() method (__str__() is used instead).

Django provided a "smart_text" function to deal with that, with is also available in django 1.4 (see https://docs.djangoproject.com/en/1.5/topics/python3/ )

With this commit, code is ready for future, but more important it can deal with python 3 properly.
Merge pull request #375 from mijamo/master

Add encoding compatibility with django 1.4/1.5 + Python 3