Allow nested transactions

Allow Transactions to be nested as transaction elements.
Implementation didn't require the consumer pattern, as the code
was already structured to allow with minimal changes.

Furthermore the inheritance from list has been dropped.

Change-Id: Ia74e1dff22827f0b5fb47ba57eaa72c304998474
Signed-off-by: Ryan Barry <rbarry@redhat.com>