query service: Go back to being proactive about ddl updates

The delayed reload causes problems in some tests. This CL
proactively reloads the table. If there are unexpected states
during the reload, then the most conservative decision is taken.
This will allow the query engine schema to become eventually consistent
with the db.
Simplified rowcache connection stack

- memcache connection does not support the possibly racy
  IsClosed function any more.
- Got rid of the connection wrapper for CachePool. We just
  use *memcache.Connection instead.
- Callers of Get call Put instead of going through the
  Recycle wrapper. If there was an error, they close conn
  and set it to nil. This makes it easier to reason about race
  conditions.
- Deleted obsolete GenericCache.