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 would 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
```python
    try:
        2.x code
    except:
        3.x code
```