TransactionDefinition implementation that delegates all calls to a given target
TransactionDefinition instance. Abstract because it is meant to be subclassed,
with subclasses overriding specific methods that are not supposed to simply delegate
to the target instance.

This just serves as a hint for the actual transaction subsystem;
it will not necessarily cause failure of write access attempts.
A transaction manager which cannot interpret the read-only hint will
not throw an exception when asked for a read-only transaction.