clusterer: Make the data sync interface more robust
This patch improves the data sync interface so that during a sync,
modules are no longer forced to micro-manage the data packets they are
receiving from the interface. They can now freely abort the processing
of a sync chunk at any time, without disrupting the processing of the
entire sync packet (composed of many more of such data chunks).
Additionally, since the sync packet format has changed (an extra integer
is needed for each chunk in order to allow the "skip" mechanism), the
sync packet version is now bumped from 1 -> 2, in order to prevent any
compatibility issues with OpenSIPS nodes without this patch.
clusterer: Enhance the versioning of sync packets
This commit adds an additional "version" field for the sync packets,
which are more complex than the other ones. Since they contain
serialization logic from two different layers (clusterer + data module),
they should also contain two version fields, to allow each module to
discard data coming from an OpenSIPS donor node running on a differing