Use Python 2/3 compatible print syntax.

Generally this was accomplished by:
* `print X` -> `print(X)`
* `print "string", X` -> `print("string %s" % X)`
tests: Set build-lib and build-scripts variables.

In newer versions of Python, setup.py build creates directories using a
triplet of information: `build/lib.linux-x86_64-2.7`. The test, however,
expects the files to end up in `build/lib`. To fix this, call `setup.py`
as:

    python setup.py build --build-lib=build/lib --build-scripts=build/lib
Fix unittest deprecation warnings

* `failUnlessEqual` -> `assertEqual`
* `failUnless` -> `assertTrue`
Use Python 2/3 compatible except syntax.
Python 3 compatibility: decode Popen.communicate result.

In Python 3, Popen returns bytes, not string.  Since the rest of the
program expects the version as a string, we simply decode the result.
bump to 0.7+ before making changes
chmod -x all non-executable files
Merge branch 'bfroehle-2and3'
mention Python-version compatibility: 2.5, 2.6, 2.7, 3.2

2.4 might work, but I'm having problems finding an old enough machine to
test it. I'm willing to drop 2.4 compatibility at this point.

3.0/3.1 might work, same problem (and same lack of concern about making
it work, I think most distributions skipped straight to 3.2).

3.2 works and passes tests (thanks to Bradley Froehle for the patches!).
Tests currently emit some ResourceWarnings, but they appear to be just
noise and not actual problems.
test_git.py: hush py3 warnings about files left open