prepare most prints for python3, re #45

This makes it easier to backport things when we fork 1.0 to work on 2.0
print x can be written as print(x) even in Python 2,
because this is just taken as additional parentheses around x.

print x, y can be written with print("%s %s" % (x, y)).

print can be written as print(""). print() would print "()" on python 2.

This doesn't work easily when we don't want a newline after the ouput.
So no change is made for these cases.
make input work in Python 3, re #45

Python 3 has input = raw_input and no raw_input anymore.
On Python 2 we will have problems with empty input on "input",
so we have user_input which chooses the method accordingly.