Removed a duplicate rollback inside Shield.InTransaction.

The code inside the "finally { ... }" is called even if there has been
an exception.
Simplify Shield.RunCommutes() and Shield.IsolatedRun() by introducing the method WithTransactionContext().
Merge pull request #1 from cr7pt0gr4ph7/master

Removed a duplicate rollback inside Shield.InTransaction.