kernel - Add cluster_readcb()

* This function is similar to breadcb() in that it issues the requested
  buffer I/O asynchronously with a callback, but then also clusters
  additional asynchronous I/Os (without a callback) to improve performance.

* Used by HAMMER2 to improve performance.
hammer2 - pfsmount -> clustermount separation part 2

* Further separate the high-level VNOPS/inode (hammer2_pfsmount) layer
  from the lower level device (hammer2_mount, hammer2_chain) layer.

* Remove hmp fields from hammer2_trans and hammer2_inode.

* Add hammer2_cluster to the pfsmount as degenerate case for now.  This
  will be used to list all devices backing the PFS mount, pertaining to
  the copies mechanism.

* Run all logical (file) buffer cache operations through the device buffer
  cache.  Remove previous direct-mapped shortcuts and disable BMAP for now.

  Basically the issue here is that with multiple devices backing a HAMMER2
  mount, the normal file buffer cache 'cached disk offset' operations used
  to shortcut I/O just won't work.  We can add the shortcut back in later
  for single-backing-device mounts but for now separate them out entirely
  and bcopy() between them.

* This will also make it easier for the GSOC H2 file compression project.

* Restore some of the lost performance by using the newly implemented
  cluster_readcb() buffer cache function.