[ipam] no need to gossip entire ring #682
Description
ATM IPAM always gossips the entire ring. That is unnecessary; it would generally be sufficient to gossip changes only i.e. new/updated tokens. The only exception is range transfers: when a peer donates part of its range to another peer, the recipient must also be told the next token along the ring. Otherwise the recipient might allocate beyond that, if it hadn't received that token in gossip up to that point.
This does make the protocol more tricky. Peers would have to only accept tokens for themselves that arrive as part of a donation response, and ignore tokens for themselves that they receive via ordinary gossip, for purposes of allocation (though they can still remember them and gossip them around). And we'd need extra protocol steps to make the donation response reliable, since otherwise we can effectively leak ranges. E.g. a peer that receives a token for themselves via ordinary gossip could prod the owner of the previous token to re-send the donation response. (of course that peer may turn out not to be donor, etc, etc - lots of things to be worked out here).