Fix for django 1.5 - no force_unicode, smart_unicode

* use force_text, smart_text
Fixes for python3 compatibility

All fixes should work with Python 3.3, as well as being
backwards compatible to at least Python 2.6, possibly earlier.

* Different syntax for capturing Exception objects
   (mptt/forms.py:158)
* dict.iteritems() no longer exists, simply use dict.items()
   (mptt/managers.py:216, mptt/models.py:56,724)
* dict.items, dict.values() are not directly subscriptable, must
  be list-ified first
   (mptt/managers.py:575, mptt/models.py:34)
* basestring doesn't exist in python3, use django.utils.six
  wrapper.
   (mptt/models.py:48, tests/myapp/tests.py:60,63)
* metaclass syntax has changed. The only way to retain python2/3
  source code compatibility is to create the class manually.
   (mptt/models.py:374 and thereabouts)
* unicode() no longer exists, use django.utils.six wrapper
   (mptt/utils.py:88,168)
* django models should have an __str__ method instead of a
  __unicode__ method when used under python3.
   (tests/myapp/models.py:15,25,43,64,87,101)
* reduce is no longer a builtin, must be imported from functools
   (mptt/models.py)
* mock streams need to have an encoding and a flush() method
   (tests/myapp/tests.py:108)
* division operator does float division by default now, replace
  with // integer division operator.
   (mptt/models.py:492)
* no print statement in python 3, replace with write()
   (tests/myapp/tests.py:121)
* or replace with print(...) which "accidentally" works on python2
  (since the parentheses are syntactically meaningless, as long as
  only one object is being printed)s
   (tests/myapp/doctests.txt:7,41,52,63)
* python3 iterators are called with next(obj), not obj.next());
  and next is now a builtin, so best not to shadow it using
  variable names.
   (mptt/utils.py:24ff)
* python3 itertools izip no longer exists, __builtins__.zip now
  returns an iterator
   (mptt/utils.py:31)
* python3 range now returns an iterator - printing out doesn't
  listify it, so for doctests, need to listify explicitly.
   (tests/myapp/doctests.txt:52,63)
Merge remote-tracking branch 'tow/tow-py3-compat' into update-things
some minor tweaks to @tow's good py3.3 compat stuff