Python3 experimental

Hi. Some initial work on Python3. All tests that passed on 2.7 still pass on 2.7. Python3 is not finished, but I woul like the branch to be run through the full regression test on 2.6 and 2.7, and if that passes, I suggest merging into master.
I have tried keeping the changes to a minimum, and the general pattern is to favor 2.x by using
try:
    2.x code
except
    3.x code