Compact GlPostings on a transaction

Often when an event occurs that hits the GL such as an invoice or
inventory adjustment, multiple postings are made to the same GL
Accounts, this isn't really a problem accounting-wise, but it does make
the GL difficult to audit.

This sets up the GL so that a Transaction can have multiple
credits/debits, and can be nested in a block. After the block is exited,
the GlTranscation compacts all the postings by account so that there is
only one post made per account.