hammer2 - bigger stabilization & performance pass
* Fix additional namecache bogons that could result in a crash.
* Fix volume header synchronization. It was possible for the voldata
structure to be modified after its crc had been calculated but before
its write. A mount after a crash would then refuse to use the volume
header.
* Each flush now iterates available volume header backups instead of
just writing to block 0. (The mount code selects the most recent
valid volume header from available backups. There is nothing special
about the volume header in block 0).
* Fix volume header flush staging, the fsync of the device buffers
was not ensuring a complete flush before synchronizing the volume
header.