First steps to Python 3
Necessary steps:
- replace a <> b by a != b
- replace `a` by repr(a)
- replace IntType, TupleType, etc. by int, tuple in type testing
- replace string.strip(a) by a.strip(),
  same for string.split() and string.join()
- replace def function(arg1, (arg2a, arg2b), arg3) by
  def function(arg1, args, arg3) followed by arg2a, arg2b = args
- replace print a by print(a), with minor tweeks since it's a function
  in Python 3 but not in Python 2
- replace map() by list comprehension when necessary
- repplace l = a by l = list(a) when iterable in Python 3 and necessary
- long = int if Python 3
- replace xrange by range, in those cases have range = xrange in Python 2
- use absolute imports like
  import fontTools.ttLib.tables.DefaultTable
  instead of
  import DefaultTable
- replace a.has_key(b) by b in a
- use io.StringIO in Python 3
To do:
- correct bytes, strings and Unicode for Python 3
  something like Djano's six could work.
- susbet.py
Cosmetic steps:
- replace list = something followed by list.sort(), by sorted(something)
- replace map(operator.setitem, dict*length, a, b) by dict(zip(a,b))
- replace map(operator.getitem, dict*length, a) by [dict[x] for x in a]
bytes/string support missing
- remove repeated or unused imports