Use python3 style print function

This is possible from python2.6 using the statement:

    from __future__ import print_function

For python versions below, the import statement will fail. The code will
run nevertheless if the line is removed. The only difference is, that
multiple arguments of the print() function will now be output as tuples.
Use python3 style division

Python3 division yields floating point results in all cases by default.
If you want to perform integer division, you need to use the '//'
operator.

In the modified file, the intended operation was a floating point
division anyway.
Use python3 style explicit relative imports

In python3 implicit relative imports are deprecated. Python2.5 supports
python3's explicit relative import syntax only using:

    from __future__ import absolute_import

From python2.6 the syntax is available without this statement.
Fix string compatibility issues

- in python3 there is only `str` instead of python2's: `basestring`,
  `unicode`, `str`
Fix pre-existing syntax issues
Fix dictionary compatibility issues

In python3, there is no has_keys() method for dicts anymore. Instead use
the syntax

    key in mydict

which is compatible to python2.

The preferred syntax for iterating over dictionaries is:

    for key in mydict:
        pass

Note that .keys() returns an iterable in python3. So it must be
converted to a list explicitly if desired:

    l = list(mydict.keys())
Fix metaclass compatibility issues
Fix binary issues

In python3 byte-arrays and strings are not implicit convertible anymore.