Transaction support

Yeah I changed this because the dal.js and dirac.js were using two different implementations so passing around and checking instanceof pg.Client was failing.