Join the reconnection and connection codepaths

Previous patch solved the problem with a half measure: it simply
copied the missing part of the reconnection flow from the connection
flow (namely, saving the DBI handle).  It's better to just use the
same code.

Short term benefit: the last_connection_check timestamp
will be set at connection time, instead of at the next call after
reconnect, which allows to spare a connection check on the next
call.
Long term benefit: fewer chances of diverging further.