Optimize for improving stale=false query latency

The stale=false query triggers an updater job if the current indexed
seqnos are less than current partition seqno if an updater is not
already running. Otherwise, if the query's wanted seqnos is less than
current indexed seqnos and an updater is already running, they are
added to a waiter list. All the query requests added into a waiter
list is only processed after completion of current updater instance.

When an updater starts processing mutations, it will process in batches
and synchronize headers to view group process frequently (Checkpointing).
But the reply to the waiting queries are only processed after the entire
updater instance run is complete. After each checkpointing if some of the
currently waiting query request's wanted_seqnos is less than current indexed
seqnos, we should be able to reply to the queries immediately.

Optimized checkpointing phase to reply query waiters if wanted_seqnos
criteria is met. This should improve query latency for stale=false queries.

Change-Id: I44d7067ebc9db7ce690679095e83554dd4244277
Reviewed-on: http://review.couchbase.org/39051
Reviewed-by: Volker Mische <volker.mische@gmail.com>
Reviewed-by: Nimish Gupta <nimish@couchbase.com>
Tested-by: buildbot <build@couchbase.com>