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.