hammer2 - flush sequencing part 7 - stabilization pass

* Simplify the next_parent / IPACTIVE handling.  Just ref next_parent
  unconditionally, it's the easiest solution.

* More work on CHAIN_SUBMODIFIED flag handling during the flush.  The
  flush seems to catch all the edge cases now (cross fingers).

* Do a better job cleaning up unreferenced chains.
hammer2 - Add 'hash' directive

* Add hammer2 hash <filename>* which calculates and prints out the
  64-bit directory hash code for a filename, for debugging purposes.
hammer2 - flush sequencing part 8 - stabilization pass

* On this commit it appears that the cpdup / test is fully validating
  on remount and chain memory leaks are gone.

* Remove a hack when creating a hardlink.  The original directory entry
  is duplicated to create the invisible hardlink target in the common
  parent directory, but the original directory entry is then not deleted.
  Instead I was modifying it (which generally did not cause a delete/duplicate
  sequence) and then changing the inode type to HARDLINK and setting
  the OPFLAG_DIRECTDATA flag.

  The problem with this is that the inode's core RBTREE was left intact,
  but as a DIRECTDATA inode the flusher ignores it.  This prevented the
  flusher from clearing the MOVED but on the children and resulted in the
  memory leak.

  What I do now is delete/duplicate the original inode, give the duplicate
  a fresh core, and then modify the duplicate instead of the original to be
  the special HARDLINK type w/OPFLAG_DIRECTDATA.  This removes the special
  case.
Merge branch 'master' into gsocdrm_merger