Fix alignment of Transaction allocation:
Fix alignment of Transaction allocation:

new of a char array might not have the correct alignment to hold a Transaction.
Allocate a Transaction itself directly, instead of in-place constructing it in
the character array.

Each Transaction in the pool is thus constructed through `new Transaction(S)`
and destructed through `delete T`, which is nicely symmetrical. The use of
`::operator new` and `::operator delete` isn't actually necessary.

While I'm at it, improve the assert message's wording.

root-mirror/cling,root-mirror/cling,root-mirror/cling,root-mirror/cling,root-mirror/cling,root-mirror/cling