fixes Bug 984583 - added abandon transaction behavior

the Bugzilla crontabber job uses an Exception for control flow.  There is a complicated transaction that is started, but near the end, we can finally recognise that the transaction is not useful.  The original code just raised an exception and let the TransactionExecutor roll the transaction back.  However, the TransactionExecutor logs it as an error even though it was intentional.

This PR adds the ability for the TransactionExecutor to abandon a transaction if the exception was raised intentionally and has the attribute 'abandon_transaction'.  
I still think ```x``` looks weird here :P it looks normal in very tightly-scoped things like ```[x for x in ...]``` but when I see it used below I keep wonder what it is. ```e``` is so common in python code and docs that I don't think about it, just as I ```n``` would look weird as a loop counter.