Added failover ack queueing. Failover update messages are no longer
immediately responded to, but are placed on a queue (attached to
the dhcp_failover_state_t structure). Updated leases are committed
only when the queue is drained, giving a significant performance
increase.
The toack queue is drained:
a) when the queue size exceeds half the partner's max-unacked-updates
setting, or
b) two seconds after the last update message is received.
Added 'refcnt' and 'next' fields to the failover_message_t structure,
to allow messages to be placed on the toack queue.
On the sending side, leases are no longer committed immediately after
being acked. Rather, the commit is deferred until no further acks are
pending. This also gives a major gain in performance.