We have dropped old go versions. So we can improve how ErrBadConn handled. Since database/sql uses IsValid() and ResetSession() to check connection, we can return i/o errors without translating them into ErrBadConn. We should remove `errBadConnNoWrite` too.