hammer2 - SPAN protocol work
* Because we allow loops in the graph the loss of a feeder node can
result in a tail-chasing loop of SPAN updates with an ever-growing
distance parameter.
To deal with this a spanning tree distance limit is required, beyond
which no propagation occurs which terminates the chase. The tail
then catches up to the head and the node is finally removed from
the spanning tree entirely.
This fixes the propagation of spanning tree deletions e.g. when we
umount a HAMMER2 PFS.
* Fix a state insertion bug. A structure was being inserted into the
red-black tree before the required fields were being initialized.
Corrects a SPAN propagation fault.