Replace SearcherManager with NRTManager

The NRTManager allows Gerrit to wait for a specific document mutation
to be visible to searchers before trying to run a new search.  The
NRTManager comes with its own background thread to manage reopens,
replacing the thread that reopened the index every 100 ms.

The change index API now returns a ListenableFuture the caller can
wait on to learn when new queries will return the updates.

Change-Id: I1b3c5ba036241ffd54c88a16ee8b2ffb3d3bf5f2
4 files changed