hammer2 - Rework the flusher
* Rework the flusher to remove numerous degenerate cases which caused
excessive re-flushing of the same block(s).
* No longer flushes the volume header on sync if the filesystem is not dirty.
* General code cleanup.
* Beginning of a work-up to implement variable logical block sizes for file
data. Physical blocks will always be 64K but logical blocks and block
allocations can be any multiple of 1K.
Currently any file > 512 bytes allocates a 64K file block, which is
horribly space inefficient. This will be fixed soon.