Revert "made rootTransactionId return 0 if no txn exists #461"

This reverts commit 6b500cce970c34fcb861974728864c5b0ff92f33.
Revert "close #461 add rootTransactionId to the result of db.currentOp()"

This reverts commit 3a788aa3767f8d159411ebce652556f6901fce7c.
reordered txn commit and abort to be exception and race safe #461
close #461 add rootTransactionId to the result of db.currentOp()

The original implementation (3a788aa) accessed the root transaction
directly rather than caching its id in the TransactionStack.  This allowed
for infoNoauth to race with the commit/abort of the root transaction and
see bad data (segfaults and assertions were common).  Now instead the
TransactionStack always knows the id of its root transaction and this
value can just be read directly.  It's still racy, but the worst thing
that can happen now is a stale read, rather than a crash.