Allow more than one form in the body of pomo:ensure-transaction.

Also refactored so that the macro expands into a function
call (call-with-ensured-transaction) so that there's a function that can
be traced (and that appears on the call stack) and so that there's less
back quoting.
Refactor with-logical-transaction into a macro which simply expands into a call to call-with-logical-transaction

This avoids duplicating the body forms in the macroexpansion output and
allow one to trace 'calls' to with-logical-transaction by tracing the
function call-with-logical-transaction.
Merge pull request #1 from segv/transactions

bug fix in ensure-transactions; refactor with-logical-transactions