A generic way to add active transaction support to objects

Transaction::Simple provides a generic way to add active transaction
support to objects. The transaction methods added by this module will work
with most objects, excluding those that cannot be Marshal-ed (bindings,
procedure objects, IO instances, or singleton objects).

The transactions supported by Transaction::Simple are not associated with
any sort of data store. They are "live" transactions occurring in memory
on the object itself. This is to allow "test" changes to be made to an
object before making the changes permanent.