Improve robustness of Begin, Rollback and Commit
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.

lib/pq,sammi/pq,jnewmano/pq,springning/pq,cbandy/go-pq,bugreplaydev/pq,everalbum/pq,jnewmano/pq,dongzerun/pq,beni55/pq,amaniak/pq,ScriptRock/pq,VividCortex/pq,erichnascimento/pq,flynn/pq,ympons/pq,henrylee2cn/pq,johto/pq,StabbyCutyou/pq,calebthompson/pq,stvp/pq,bugreplaydev/pq,ympons/pq