Connection error improvements

1.  Log a warning if we can't categorize the error.
2.  If the error is a timeout then leave the connection enabled but throw
it back to the calling code.  You can never blindly rety on a timeout -
that isn't the point of a timeout.  But you might want to retry in some
other way, thus reenabling the connection.

Change-Id: I4fe21dc1cfcc53d84655f1ef36337a33f9f0debc