hammer2 - Messaging layer separation work part 3

* Move more hammer2 vfs message code into kern_dmsg.c, renaming and
  implementing callbacks as needed.

* Move hammer2_icrc.c (the iscsi crc support) to libkern/icrc32.c
hammer2 - Messaging layer separation work part 4

* Cleanup, bug fixes, operations tests successful now.
hammer2 - Messaging layer separation work part 5

* Fix debug shell callback issue
kernel - cleanup subr_disk.c

* Formatting cleanup pass.
Merge branch 'master' into gsocdrm_jfree
hammer2 - Add server-side disk advertisements

* The hammer2 service demon now tracks disks and connects the cluster
  controller to each one.

* Add a new ioctl to the subr_disk subsystem and add subr_diskiocom.c
  to implement it, associating a cluster controller messaging descriptor
  with a disk device.

* disk device initiates LNK_CONN and LNK_SPAN.  Disk block devices now
  advertised through the spanning tree.  Nothing else implemented yet.
Adjust some manual pages for the recent SMP changes.
vkernel.7: Add back some info I accidentally removed.
hammer2 - dmsg blockdev work

* Adjust the LNK_CONN and LNK_SPAN messages to provide a cluster label
  and a filesystem label instead of just a filesystem label.

* Change the cluster controller to index clusters based on the
  peer_type, pfs_clid, and cl_label instead of just the pfs_clid.

  HAMMER2 PFS's are primarily identified by pfs_clid and unique nodes
  are identified by pfs_fsid.  fs_label holds the HAMMER2 super-root
  name.

  BLOCK devices are primarily identified by cl_label and unique nodes
  are identified by pfs_fsid.  pfs_clid and fs_label are empty.

* Adjust the cluster controller's matching filters such that, e.g.
  BLOCK device clients only have visibility to the BLOCK device server
  for the cl_label in question, and do not have visibility to other
  BLOCK device clients.

* Flesh out the hammer2 service daemons disk monitoring, have it attach
  a pipe to the in-kernel disk via an ioctl().

* Continued work on the skeleton network disk exporter (kern/subr_disk*) and
  network disk importer (dev/disk/xdisk/*).  xdisk has not been added to the
  build yet.

* Move a few more definitions from HAMMER2 to DMSG.
vkernel.7: Remove SMP related info.
mptable.1: Small SMP related adjustment.
hammer2 - dmsg blockdev work (cleanup)

* Cleanup
<sys/dmsg.h>: Fix buildworld, ccdconfig(8) needs this (via <sys/disk.h>).

Reported-by: Siju George <sgeorge.ml2@gmail.com>
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
ps.1: Adjust info regarding SMP systems.
build - Use _KERNEL_STRUCTURES for struct disk

* Use _KERNEL and _KERNEL_STRUCTURES around struct disk as well
  for correctness.
Merge branch 'master' of ssh://crater.dragonflybsd.org/repository/git/dragonfly
libgomp47: Install libgomp.spec and omp.h

It was reported these files are needed by libgomp, so generate and
install them.
libssp47, libobjc47: install headers

Headers for both libssp and libobjc were not getting installed for the
gcc47 library set.  As an aside, the gcc44 libobjc is also missing these
headers.  There installation required an mtree change, but it can be
built with quickworld.

Additionally, CFLAGS were moved to above an include for libobjc which
should ensure the local config.h is included before a different version
and this in turn likely improves libobjc functionality.
gcc41 removal: Part 1 of 2: makefiles

GCC 4.1 had been disconnected from the base build after GCC 4.7 was
brought in.  The transition as gone relatively smoothly, so it's safe
to remove the rest of GCC 4.1 now, starting with the makefiles.