Transactions implentation

Includes support for the proposed API: BeginTransaction()/Dispose()

Characteristics:
* All the REST queries throw an exception within a transaction scope.
* Automatic detection of transactions (no need to specify something in Cypher Fluent description).
* Support for System.Transactions (using (var scope = new TransactionScope()) ).
* Includes unit tests.
* Support for nested transactions with BeginTransaction() and System.Transactions
* Lazy transaction initialization (the transaction is 
* There is no need to change the behavior of only one GraphClient instance, as the transactions are thread-bounded (thread static). Although it starts to sound a good idea to have a factory which check for the address and see if the connection has been made before.

Internal changes:
* Change in the execution mechanism to something "more fluent" which allowed to code the transactions easier.
* Includes execution policy definitions (this is what differentiates the behavior within a transaction or not).
* New ApiModel classes to support transactions.
* New interfaces (ITransactionalGraphClient and others)