Neo4j Scoped Transactions

This commit enables transaction scoping with three options:
* TransactionScopeOption.Join: Joins the current transaction or creates a
  new one.
* TransactionScopeOption.RequiresNew: Always creates a new transaction.
* TransactionScopeOption.Suppress: Disables a current transaction.