hammer2 - Stabilization pass

* Fix case in hammer2_chain_delete_duplicate(), allow delete-duplication
  of a deleted terminal chain outside of a flush.

* Fix assertions in the flush code.  Deleted parent's block tables are not
  updated.  If all parents are deleted we allow the CHAIN_DELETED flag to
  be cleared in children even though the children might still be on the
  DBTREE or be flagged BMAPPED.

* Fix bug in hammer2_bioq_sync() where new logical buffers instantiated while
  flushing existing buffers are not waited for before exiting the PREFLUSH
  state.  This might not actually be a bug but cover the case for now.
tools - Implement a simple hammer-backup script.

This script operates HAMMER PFSes and dumps its contents for backup
purposes.

It uses mirror-read directive (see 'man 8 hammer') to perform a
dump to stdout that is redirected to a file with or without
compression.

Read /usr/src/tools/tools/hammer-backup/README for more detailed
information.

Also please note the script is not installed with a default DragonFly
BSD installation, so you have to take care of that manually.

Any suggestion or bug report is appreciated!