kernel: Remove USERFS.

It's an old project of Matt, but won't be continued anymore.

Approved-by: dillon
hammer2 - redo the flush collision handling

* Add HAMMER2_CHAIN_ONRBTREE and change HAMMER2_CHAIN_DELETED.  The DELETED
  flag now indicates a chain has been deleted (as in unlink, rmdir, truncate,
  etc) but could not be removed due to a conflicting flush.

  DELETED means something different from dropped chains with 0 refs which
  wind up sticking around due to the lastdrop code not being able to
  acquire a lock on the parent or colliding with a flush.  0-ref chains
  can be considered to cache clean media state when it comes down to it.
  (modified chains have a ref and so don't hit the lastdrop code).

* The flush code is now able to reliably unlock the chain parent when
  processing a child.

* Clean up a number of flush cases.

* Began to add error handling in the hammer2_chain_create() path.  The path
  now handles EAGAIN errors when insertions would collide with a flush.
  (The wait/retry code is currently just a sleep/retry).

* Removed the MAYDELETE junk.  It was too junky.

*
pktgen: Clear ip.ip_sum before calling in_cksum_hdr()
hammer2 - small stabilization & performance pass

* Change a few bawrite()'s to bdwrite()'s to the bufdaemon can cluster
  the meta-data.  This greatly improves continuous flushes (e.g. when
  running blogbench).

* Fix a number of improper cache_setvp() calls which can cause the
  system to panic later.  Basically the vnode was being cleared without
  the namecache error getting set (to ENOENT).  Easiest solution is to
  just not call cache_setvp() for those cases in the first place and
  just leave the ncp unresolved.
ipfw: Don't spam the log if dynamic rules allocation failed

There is high chance that kmalloc w/ M_NOWAIT fails; no need to bark
hammer2 - bigger stabilization & performance pass

* Fix additional namecache bogons that could result in a crash.

* Fix volume header synchronization.  It was possible for the voldata
  structure to be modified after its crc had been calculated but before
  its write.  A mount after a crash would then refuse to use the volume
  header.

* Each flush now iterates available volume header backups instead of
  just writing to block 0.  (The mount code selects the most recent
  valid volume header from available backups.  There is nothing special
  about the volume header in block 0).

* Fix volume header flush staging, the fsync of the device buffers
  was not ensuring a complete flush before synchronizing the volume
  header.
polling: Diverge each CPU's polling frequency a little bit (within 50Hz)

This avoids possible thunder hurd effect on ifnet.if_snd's serializer.
polling: Increase default rx.each_burst to 50

With this default the CPU usage still could be throttled to the desired
value (rx.user_frac), it gives reasonable burst for modern systems and
number of empty RX polling is reduced.
wlandebug.8: Don't reference manual pages which we don't have.

Instead, point at the tools directories in our tree.
kernel - ufs softdep fix under heavy load

Fix is from OpenBSD ffs_softdep.c v1.79, originally from FreeBSD
ffs_softdep.c 1.196. Commit message from OpenBSD:

"due to ffs_sync not be able to sync some buffers here is another
instance of softdep code that must ensure proper syncing.
try harder to flush MKDIR_BODY dependancy if such still exists
during pagedep flush (that is by syncing first block of the dir)."
libkiconv: Remove unneeded SHLIBDIR in the Makefile.
kernel - Fix buffer cache mismatch assertion (hammer)

* Fix an issue where cluster_write() could instantiate buffers with
  the wrong buffer size.  Only effects HAMMER1 which uses two different
  buffer sizes for files.

* Bug could cause a mismatched buffer size assertion in the kernel.
Merge branch 'master' into gsocdrm_github