Patch the majority of the issues with running units in Python 3.
The changes are mostly due to:
* __cmp__ is deprecated in favor of __lt__ for sorting and the explicit __le__, __gt__, __eq__, etc. operators. * cmp is no longer a builtin * Objects are no longer implicitly sortable by their memory address * Division is now overloaded with __truediv__ (/) and __floordiv__ (//)
There is one remaining issue that causes the tests to fail in Python 3.3, a change in floating point to string conversion. I will commit that next separately from these changes, as it is the only fix that requires any semantic changes in the library.