Another fix for ThreadAbort.

If an exception would happen in RunCommutes(), the commuted items might get
lost due to being a local var. After making it an out param, possibility remained that
an abort while handling TransException might see them already bagged while the ref
is not yet cleared, causing the CommitCheck finally block to read from it while another
thread might be using it. Fixed in TransItems.Bag().