[New] implemented a TransactionResult

This allows reflecting on actual changes performed by the transaction if
this is needed by the caller. One use case would be to perform observer
updates after a transaction was completed.