MB-11728 Avoid blocking view group process for get_stats()

Whenever a stale=update_after query or updater daemon triggers an updater run,
it needs to obtain vbucket-seqno stats to decide if we need to start the
updater or not. It blocks for while until stats response arrive from ep-engine.
The view group gen_server process messages one by one. If one of the message
takes more time, other messages get queued and will be delayed for processing.
Hence if a query request is in the mailbox for long, queries will experience
a delay in getting the response. Blocking in the view group process can result
in higher latency for queries and affect the query throughput.

Refactored start_updater() method to make it asynchronous in nature. Every
start updater request will internally send a signal to a dedicated updater
scheduler process and return immediately. The dedicated updater scheduler
process will perform a get_stats and post partition seqnos to the view_group.
View group process can immediately compare seqnos with indexed seqnos and
start updater if required.

Change-Id: Iddf5e46b4665e57a544219343243baab95accec9
Reviewed-on: http://review.couchbase.org/39153
Reviewed-by: Sarath Lakshman <sarath@couchbase.com>
Tested-by: buildbot <build@couchbase.com>
Reviewed-by: Volker Mische <volker.mische@gmail.com>