transactions: avoid late tear-down (issue641)
We use weak references (ugh) to avoid having to manually delete
transaction references out of each call frame when an exception occurs.
abort: Failed to parse .../t/.hg/hgrcFile contains no section headers.file: .../t/.hg/hgrc, line: 1'invalid\n'