hammer - Fix bugs, fix serious snapshot bug, flush adjustments
* Make sure we only flush the volume header for a general sync request
and not for a fsync() on /.
* Fix more lock order reversals when translating directory entries
to inodes.
* Separate out spmp elements into their own list to make umount ordering
easier.
* Flush in three stages.
(1) flush dirty filesystem inodes
(2) flush PFS meta-data topology up to the filesystem inodes.
(3) flush the volume root and its meta-data up to the PFS inodes.
This is staging for later sync concurrency improvements.
* Fix a bug where creating enough snapshots (more than 4 total PFSs)
causes some PFSs to lose an important flag in their blockref, which
causes flushes to stop working properly on that PFS.