Py23 - Changes to support Python 2.6+ and Python 3.1+ concurrently

These changes have been tested on Python 2.7.3 and 3.2.3.

Much of the work was done on time paid by Bluehost.com.

CLA has been signed.