Fix the conditions. The if-stmt was dead code with the broken conditions.
Ended transaction should reset the m_Consumer's active transaction to 0,
ended nested transaction should put its parent.
Enhance debug printout.
Style.
Transaction takes and stores the ASTContext, otherwise it is too much of an effort to get it from the DeclQueue, which might contain null DGRs.
Make setNext public and thus the IncrementalParser will be no more friend of the transaction.
Change the state when the transaction gets returned in the pool. Simplifies debugging.
We now keep track of the deserialized declarations in the transaction, because
ROOT needs the callbacks to be fired on deserialized bunch of declarations.

Track down (almost) all places that might trigger deserialization of declarations
and wrap it with cling::PushTransactionRAII. I could solve it much more elegantly
by putting that RAII in the callback of the ExternalASTSource, but I wanted to be
verbose and denote all the places that trigger deserializations in ROOT. This
will help us in future optimize this code, because we want to deserialize as
rare as possible.

This should make roottest a bit happier.