hammer2 - Rewrite internal chain algorithms - stabilization
* Add temporary guards on a few structures for debugging purposes.
* Verify that blocktables are ordered.
* live_zero is multi-homed, move it out of the chain_core structure and
into the chain structure. Also move the COUNTEDBREFS flag
* Unlock the spinlock prior to issuing the atomic fetchadd to decrement
hammer2_core->sharecnt. Clean up any hanging chain_layer's when freeing
a core structure.
* Initialize live_zero to 0 when base is NULL (i.e. if the chain structure
is in the INITIAL stage).
* Refactor hammer2_chain_find(), hammer2_base_find(), and add
hammer2_combined_find(). Fix numerous bugs in the key_next
calculation and ensure that the combined find returns exhaustion
if the element it finds is outside the requested range.
* Close a delete-duplicate race in hammer2_chain_getparent() and
in hammer2_chain_lookup(). A delete-duplicate could weasle its
way in during the parent lock transition.