MB-7702 Fix groups received from the compactor

Due to the interaction with the updater, the compactor
might receive a group snapshot from the updater that
doesn't reflect the state of the snapshot in the parent
view group process. Therefore, in the view group process,
before accepting a group from the compactor, fix that
group so that it reflects the latest state, just like what
is done when the view group process receives a group
snapshot from the updater.

This could lead to a permanent bad index state (missing
passive partitions, or partitions marked as passive when
they should be active and vice-versa). This was a regression
introduced by MB-7522:

"Optimize very common index state transitions (rebalance)"

Change-Id: I2637d0fda838e803b5bcd474a86fb02c16cfe992
Reviewed-on: http://review.couchbase.org/24534
Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
MB-7631 Interpret bp of 0 as empty body

By convention, in Couchstore/.couch files a body pointer of zero
indicates that the item has no body/has an empty body.

This commit makes CouchDB also have this behavior (otherwise, it will
attempt to read data from position 0 in the file when encountering a
deleted item)

Change-Id: If4229b68a2b6fc79484535619b7acfbc5055ca0e
Reviewed-on: http://review.couchbase.org/24586
Reviewed-by: Junyi Xie <junyi.couchbase@gmail.com>
Reviewed-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-by: Jin Lim <jin@couchbase.com>
Tested-by: Aaron Miller <apage43@ninjawhale.com>
Tested-by: Filipe David Borba Manana <fdmanana@gmail.com>
Reviewed-on: http://review.couchbase.org/24596
Reviewed-by: Aaron Miller <apage43@ninjawhale.com>
Merge remote-tracking branch 'origin/2.0.1' into 2.0.2

Change-Id: I7700768e4ceebda2ccbde2ae8166e71f9bb29f73