Python3 support

Here is an update of the python and swig code to support both python2 and python3.

The main changes are using of __future__ print function and division.
For python3 support the main pain point was the different handling of division (__div__ vs __truediv__, solved by copying the attributes) and the difference when handling string versus bytes (solved via a conditional definition for swig's `typemap(out) std::string`).

I also played a bit with the compilation scripts. But those changes are not as clean/nice as they should.
I guess the `python-simplify` branch will cover that.