Improve robustness of Begin, Rollback and Commit

Commits 46e935d341c15691dfb2614375 and 44ea1b5c0bf9099acec9e6c5f1
made the transactions handling functionality more robust, but we
can do a bit better than that by also checking the ReadyForQuery
state after these commands.

They also made it possible for the functions to panic, which is not
a good idea (see #178).  Guard against that with errRecover.