hammer2 - fix crash in temporary code

* Fix a crash in the not-yet-working inode stats rollup code.
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.
kernel - Adjust impossible conditions in kdmsg_state_*()

* kdmsg_state_reply() and kdmsg_state_result() require a non-NULL state.
  Assert the condition and remove the else clause that was broken in the
  first place.

Reported-by: Joris giovannang