date(1): Choose a better format constant

After the locales patch, date(1) would return something like "09/30/13"
depending on your locale.  This is a different format that omits the
time component that was there before.  Changing the D_FMT constant for
D_T_FMT will return something like "Mon Sep 30 21:55:26 2013" which is
much closer to how it was before the locales patch was committed.
bsd.lib.mk: Recognize {SHARED,STATIC}_{C,CXX}FLAGS variables

Four new variables are recognized by bsd.lib.mk:
  STATIC_CFLAGS
  STATIC_CXXFLAGS
  SHARED_CFLAGS
  SHARED_CXXFLAGS

This allows for the possibility to compile the objects with unique flags
depending if the library is shared or not, and/or c versus c++.
libarchive: Disable iconv the statically-built version

The iconv in base uses dlopen(3) which only works on dynamically-built
binaries.  Use the new SHARED_CFLAGS variable to set ICONV conditionally
for dynamic libraries only.  This fixes the "Service Unavailable"
message that pkg started emitting after the locales/iconv update.
Set ICONV_CONST to "const" for various GNU software

The prototype of iconv changed to match FreeBSD and NetBSD with the
recent locales update.
hammer2 - Revamp hammer2_cluster structure part 1

* Adjust the hammer2_cluster structure to track multiple chains (and thus
  multiple mount points).  Use cases still just pull out one chain.

* Remove schain from hammer2_mount, leaving just sroot.  The cached chain
  structure isn't useful because it doesn't track delete-duplicate
  operations.  Use sroot for basing functions.

* Mark pfs-mount chains with the PFSROOT flag and propagate through
  duplications to detect when a snapshot should inherit the PFS
  cluster id or not.
hammer2 - Revamp snapshot code

* Change the snapshot code to not use chain_duplicate().  Instead
  get the thing working by flushing the original sub-tree, creating
  a new directory under the super-root, and then simply copying the
  blockset.

  The previous code called chain_duplicate() to create the snapshot
  but the coding still required a flush.  Doing it without a flush
  is possible for a read-only snapshot but very difficult otherwise.

* This will simplify coding down the line.