Get num backfill items from the kvstore

This should be much more accurate and I also found some
underflow issues with the old implementation.

Change-Id: I3f90c04dac0fbe103d4016e666a03edb31061eff
Reviewed-on: http://review.couchbase.org/30763
Reviewed-by: Michael Wiederhold <mike@couchbase.com>
Tested-by: Michael Wiederhold <mike@couchbase.com>
Add couch_notifier_enabled engine parameter

This allows us to disable couchdb notifications so that
we can run memcached with ep-engine and couchstore

Change-Id: I9a3c50443ff35b7a602803f229ea0b0b793b7125
Refactor table scan in couchkvstore

We no longer use the code that allows us to schedule a table scan
for all vbuckets. This code should be especially removed since we
have multiple couchkvstore instances per bucket and doing a table
scan for all vbucket means all 1024 vbucket.

Change-Id: Ib0aee0ca9621a123ee0d46906448c9a08bd72dc0
Use ConnMap in backfill task

This will allow us to specify different behavior based on whether
or not the connection is for tap or upr.

Change-Id: I6f799e68e3d62902e913919126707cb482bc454b
Allow specification of start/end seqno ids when doing backfills

This will allow upr clients to specify a range of data they they
want to receive when doing a backfill. Note that we can likely
refactor the backfill logic in the future to make it simpler.

Change-Id: Ib95d0693838cd405bbc532f50cf7386cc94ffaac
Add 'stats vbucket-seqno' command

This command lists all of the high sequence numbers for all
vbuckets.

Change-Id: Ie007d9549857a2b485d7df43931be23a04b2c23c
Move all functions out of TapProducer class

Change-Id: I1332619f132b2980962e21d6eb43984f7a4bbb51
Move most of Producer logic into TapProducer

A lot of the logic in the Producer class will not be used
by the UprProducer. This change moves that logic back into
the TapProducer class.

Change-Id: If04715468340e848d857e8641407eaa75e6035aa
Add upr backfilling

Change-Id: Ie5051ea17fddda1ba103ac9b062ff02cd2e99d76
WIP

Change-Id: Ibddc499cbbcc9042d80854d1fcbfe096f6a6e98b