Do connection recycling checks before new operations occur, rather than deadlining the socket

This prevents errors from occuring in the middle of queries, and works around possible flaws in the database/sql wrapper when unexpected errors arise due to i/o timeout.

The check has only been added to functions I was able to test, it may also need to go on Exec, Begin and a few others.