To be able to split updates by shard, the update tree was replaced by a
simple list. Indeed, by splitting the updates by shard, we loose the order
of updates. So there is no reason to still use a tree.
To make it work properly, instead of using the id of the last update pushed,
we use markers, special sticky session, only present in the updates list and
owned by a peer. There are two marker. The main one, <last>, is used as
restart point to send the new updates. The other one, <end>, is only used as
stop point when a resync was requested by a remote peer.
Thanks to these changed, the function responsible to loop on updates is a
littel simpler. We only loop frop <last> to the end of the list, or <end> if
found in the list.