Modernize the source code using python-future. Now requires python 2.6 or 2.7. python 3 is not far, but will take some manual work due to the awkward mix of tabs and one-or-two space indends in some files as py3 is really strict about that. All included tests plus our functional tests pass.