Python 3 support

This PR adds Python 3 support to MapIt (tested on 3.2, as that's in wheezy/precise). I've kept each lib2to3-type change as a separate commit for ease of seeing what was happening, though this would all be squashed before merging.

I've used django.utils.six; unicode was the hardest commit, given it's 3.2 support, not 3.3  - smart_str for printing output and smart_text for filenames were the handiest functions.