Decrufting
More decrufting and abstracterizing
Introduce XA instance and non-closing conns [IMMUTANT-479]

This is to support the dedication of XA connections to
contexts/sessions, since the resource manager does. That is, each XA
session needs its own connection.
Defer closing the connection until tx is complete [IMMUTANT-479]
Account for passed connections that close post-tx
Tests for both internal and external connections [IMMUTANT-479]