MB-9422 Fix recovery map generation.

Here's what recovery map generation code supposed to do:

 1. Figure out which nodes have more vbuckets than they would have
 if vbuckets were equally distributed.

 2. Distribute missing vbuckets among the underutilized nodes so that
 these nodes have more or less equal number of vbuckets.

Unfortunately the code was flawed. It assumed that it's never possible
to "run out" of missing vbuckets and that, basically, every node will
get at least some subset of them. Which is of course not true.

I removed the part that determined under/overutilized nodes and just
assume that since rebalance will be needed anyway, it's enough to just
not put on each node more vbuckets than it would have if the vbucket
map was balanced. I also replaced the call to lists:split to similar
function misc:safe_split. The difference is that the latter doesn't
crash if the list to split is larger than the split index.

I also added a test to verify for different input parameters recovery
map can be generated and that it assign every of the missing vbuckets
to some node.

Change-Id: I6f6b13775f4b1f9bbbdac9d098732c646e44f658
Reviewed-on: http://review.couchbase.org/29769
Tested-by: Aliaksey Artamonau <aliaksiej.artamonau@gmail.com>
Reviewed-by: Aliaksey Kandratsenka <alkondratenko@gmail.com>
MB-100 Emit a warning when beat messages are dropped.

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