Added joinTM.py which inherits from the standard ZRDB.TM and overrides its
_register() method to use the transaction's join() method directly. This avoids
a couple unnecessary abstraction levels and avoids some problems with the
overridden _register() and the transaction's register(). The former has a bare
except: that hides useful errors. The latter deals poorly with exceptions
raised from the join due to state modifications made before the join attempt.
This raises the Zope Dependency to Zope-2.8 or newer.
Changed the variables() method to be simpler and not hide errors.
Change a text exception to a class based one.