hammer2 - temorarily track free space (2)

* Move the tracking to a better spot
hammer2 - temorarily track free space (3)

* Correct type-o, add missing assignment.
Merge remote-tracking branch 'crater/master' into hammer2_LZ4
hammer2 - Cleanup, fix buffer cache interactions, try to fix truncate/extend

* Fix buffer cache interactions, particularly w/ resizing

* Move the write_file core past the uiomove into its own routine and
  reformulate truncate and extend to use the new core.  This allows
  the truncate code to re-compress the block at EOF if necessary.

* We can't dispose of the logical buffers.  We have to use bdwrite().
  Change the strategy code (temporarily) to just ignore the buffer and
  retain the synchronous writing/compressing to the device buffers in
  the main vop_write path.  Temporarily.

* Do some syntactical cleanup
hammer2 - fix crash in temporary code

* Fix a crash in the not-yet-working inode stats rollup code.
Merge remote-tracking branch 'crater/master' into hammer2_LZ4
hammer2 - Fix freemap bugs

* The linear iterator must not be used if aligned on an allocation
  chunk (16K) boundary.  Reserved areas just set the bitmap to all 1's
  but were leaving the iterator set to 0.  Fix both the boundary check
  and initialized bmap->linear for reserved areas to HAMMER2_SEGSIZE.

  This fixes a corruption issue where allocates were being made out of
  reserved areas and then overwritten by e.g. the freemap, and where
  the linear iterator would reallocate areas already allocated via the
  bitmap.

* Fix the code which marks device bufferse B_CACHE when freshly allocated.
  It wasn't handling the 32KB case properly.

* Our pre-caching gets and releases a block.  B_CACHE must be used in addition
  to calling vfs_bio_clrbuf() because we aren't holding onto the locked buffer.
Merge remote-tracking branch 'crater/master' into hammer2_LZ4
hammer2 - Fix static/global objcache declarations, cleanup some kprintfs

* Move extern's for cache_buffer_{read,write} to hammer2.h and fix
  improper staticization case.

* Remove some kprintf()s that are no longer needed in the critical path.
Setcmp/setcomp issue in hammer2.