MB-8679 Add pendingVbs queue to bgfetcher

This queue allows bgfetcher to visit only those vbuckets
in the given shard that have pending bgfetch requests.
This optmizes scheduling bgfetch requests in more efficient
fifo way.

Rebalance should benefit the above enhancement most, and initial
test shows below performance increase.

<Reb-1-out-3-buckets>

                2.1.0-718-rel ||  2.1.1-with-this-fix

Time hrs        4.48          ||  3.83

Rebalance
Time (sec)      3095          ||  2578

Sets (90-95-99)
(ms)            11 – 17 – 53  ||  6 – 9 – 18

Gets (90-95-99)
(ms)            13 – 20 – 208 ||  9 – 14 – 164

Ops (avg)       2.40k         ||  1.48k

Change-Id: Iadbbcb069701da947aac2a8cbc0d8b30762a13a4
Reviewed-on: http://review.couchbase.org/27178
Reviewed-by: Chiyoung Seo <chiyoung.seo@gmail.com>
Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>
MB-8453 Maintain the TAP connection list for each vbucket

When we receive a mutation event for a given vbucket, we
should check if any of its replicator TAP connections is
in a paused state, and notify that event to the paused
TAP connections, so that they can immediately send it
to their replicas.

To address the above issue, this change maintains a
separate list of TAP connections for each vbucket.
The list gets updated when an TAP connection is closed or
an TAP connection's vbucket list is changed.

Change-Id: I5ca49fe17fbeb406da3ebcc046285ddc164735eb
Reviewed-on: http://review.couchbase.org/27972
Reviewed-by: Chiyoung Seo <chiyoung.seo@gmail.com>
Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>
MB-8798 Remove dead conns by iterating the conn list one time.

Change-Id: I04a9e64462391b7b93249828d1ecbef3dfd60175
Reviewed-on: http://review.couchbase.org/28107
Reviewed-by: Chiyoung Seo <chiyoung.seo@gmail.com>
Tested-by: Chiyoung Seo <chiyoung.seo@gmail.com>