hammer2 - major simplification 1/many (stabilization B)

* Change hammer2_cluster_bytes() to hammer2_cluster_need_resize()
  to check for cluster size mismatches against desired.  Used for
  data block resizing.

* Fix panic - allow data blocks to have a chain->dio.  This will be
  the case when compression or other data filters are used.

* Fix null pointer panic - chain->dio can be NULL for data blocks.

* Fix null pointer panic - hlinkp is allowed to be NULL in
  hammer2_unlink_file().

* Do not assert if a hardlink target cannot be found.  There is a known
  bug case when a directory is moved to another part of the topology
  where underlying hardlinks can get lost.  kprintf() instead.

* Fix inode deadlock, add missing inode unlock in hammer2_hardlink_find().

* Remove OBJTYPE_HARDLINK tests from hammer2_inode_lock_*().  It is no
  longer possible for an inode's chain to point to a hardlink pointer,
  it will always point to the hardlink target.

* Add some lock count tracking to the VOPs to catch left over locks on
  return.  (Note that read-ahead operations mess up the lock count because
  the shared lock is inherited by the async op, so lock count tracking
  is not done in code which handles logical file data).

* Hammer2 survives cpdup, blogbench fsx, fsstress