MB-9979 Some mb_map refactoring.

So that functions that match past maps could be used outside mb_map
module.

Change-Id: Ia7247981ffc5e201dd2eeba52da949b4179fac60
Reviewed-on: http://review.couchbase.org/34220
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-9979 Implement delta recovery.

Change-Id: I898d4fe2e656dfdebc479e4cb532fd71cf0020db
Reviewed-on: http://review.couchbase.org/34221
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-9979 Store target map for delta recovery in bucket config.

So that it can be reused if rebalance fails or gets stopped by user.

Change-Id: I3a91575aa0858476075e2b26f017aee25e60f910
Reviewed-on: http://review.couchbase.org/34222
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-9979 An option to require rebalance to perform delta recovery.

By default delta recovery is performed for requested nodes if it's
possible. If it's not, normal rebalance is performed. With this option
rebalance will fail to start if delta recovery is not possible. So
that user could take any actions (like adding or removing nodes)
for delta recovery to be possible.

Change-Id: I7b5e0d9914dccb584c3ef8997267b0189b4be1b7
Reviewed-on: http://review.couchbase.org/34223
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-9979 REST API for setting node's recovery type.

Change-Id: Ia99b0e4b6f9610dc72ac989cf8cf19d741d2a4b7
Reviewed-on: http://review.couchbase.org/34224
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-9979 Expose recovery type in node info.

Change-Id: Ibc8af128760e96b7767e9fb738da7a57c638fa2a
Reviewed-on: http://review.couchbase.org/34225
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>