hammer2 - Add hammer2 boot support

* Add hammer2 boot loader support.  The hammer2 boot loader accesses the
  hammer2 mount starting at the super-root.  To use hammer2 boot support
  you need to have a PFS called 'boot', which will be seen as "/boot" by
  the boot loader.

  The 'boot' PFS can be created either by creating a boot-specific H2
  partition with 'newfs_hammer2 -L boot ...', or by using
  'hammer2 pfs-create boot' to create a PFS called 'boot'.

  You can access any super-root if desired.

* Since boot is a super-root you can mix boot PFS's and other PFS's on the
  same hammer2 filesystem, including creating a boot PFS far later on.

* WARNING!!!!!  The 'boot' PFS must be configured without compression.
  i.e. 'hammer2 setcomp autozero /boot' (assuming you've mounted it on /boot),
  before you install anything.  The newfs_hammer2 utility will automatically
  handle this if you specify a label name of 'boot' (i.e. -L boot).

* WARNING!!!!!  The BIOS may not be able to reliably access very high
  sector numbers on large hard drives, so to be safe we recommend creating
  a small 'a' partition anyway, unless the drive / main hammer2 filesystem
  is small enough to not cause problems.

* Add %qx support to boot2's mini printf().

* Fix ipdata->comp_algo propagation bug in hammer2_inode_create()

* newfs_hammer2 and the pfs_create ioctl will set comp_algo to AUTOZERO
  for PFS's called "boot" automatically.