Adding support for transaction events

Support for transactional event graph (See TransactionalEventGraph)

This type of graph supports registering/unregistering event listeners
for transaction events,

Three transaction events are supported (See TransactionEventListener):

onBeforeCommit - Data modification before the transaction is committed.
onAfterCommit - Data modifications after the transaction is committed.
onAfterRollback - Data modifications after a rollback has occured.

This commit also contains a neo4j implementation.