First pass at a transactions (XA) module [IMMUTANT-479]

Only out-of-container working now. Still need to address in-container
usage.