Import libarchive-3.1.2.

-Add basic archive read and write filter support for lrzip.
-Implement function used to seek within data blocks.
-Add support for lzop.
-Introduce uuencode filter.
-Introduce b64encode filter.
-Add support for grzip compression.
-Add support for writing v7 tar format.
-Implement functions to manually set the format and filters used.
bce: Put RX related fields into bce_rx_ring
bce: Fix supported devices list in comment
bce: Regroup function declaration
bce: Defer interrupt allocation until the TX/RX rings are allocated

This will be required for implementing MSI-X at least.
bce: Split TX/RX serializer
bce: Reimplement polling in non-compat mode

Take advantage of the independent TX/RX serializers.
patch(1): When -C is specified, do not claim to have saved rejects.

Submitted-by:  Loganaden Velvindron
Dragonfly-bug: <http://bugs.dragonflybsd.org/issues/2359>
patch(1): Fix typo.
Merge branch 'vendor/LIBARCHIVE'
Adjust files for libarchive-3.1.2 import.
vkernel - Fix if_vke

* The vkernel device driver threads are cothreads and do not have
  any per-cpu data.

* Fix recent stat counter changes which attempted to access per-cpu data
  from a cothread.  This fixes a vkernel SIGILL by virtue of the trap()
  code being called recursively on trap's own attempt to access mycpu,
  until its stack runs out.
kernel - Properly account system time for contending tokens

* When the LWKT schedule gets stuck on a contending token it switches
  through the idle thread, the idle thread is told not to halt, and
  resolution of the contention is handled by lwkt_switch() from the
  idle thread's context.

* This was causing token contention to be improperly accounted for as
  idle time in the per-cpu stats.  Fix the case by testing the
  RQF_AST_LWKT_RESCHED flag which tells the idle thread not to halt,
  and account for the tick as system time if the flag is set.

* The improper time accounting was causing powerd to come to the wrong
  conclusion in massively parralel fsstress tests on monster.dragonflybsd.org
  (48 cpus).  With the fix, powerd no longer becomes confused.

Reported-by: vsrinivas
<sys/bus.h>: Add DEVMETHOD_END.
kernel: Use DEVMETHOD_END in the drivers.
<sys/bus.h>: Fix wording.

Reported-by: marino
bce: Switch to IFQ subqueue functions and use per-TX queue watchdog
build: Only auto-save once per build

suggested-by: tuxillo
vkernel/vke: Comment out 'ifp', just like the code that uses it.
kernel - Fix cpu/token starvation, vfs_busy deadlocks. incls sysctl

* Remove the mplock around the userland sysctl system call, it should no
  longer be needed.

* Remove the mplock around getcwd(), it should no longer be needed.

* Change the vfs_busy(), sys_mount(), and related mount code to use the
  per-mount token instead of the mp lock.

* Fix a race in vfs_busy() which could cause it to never get woken up.

* Fix a deadlock in nlookup() when the lookup is racing an unmount.  When
  the mp is flagged MNTK_UNMOUNT, the unmount is in progress and the lookup
  must fail instead of loop.

* per-mount token now protects mp->mnt_kern_flag.

* unmount code now waits for final mnt_refs to return to the proper value,
  fixing races with other code that might temporarily ref the mount point.

* Add lwkt_yield()'s in nvtruncbuf*() and nvnode_pager_setsize(), reducing
  cpu stalls due to large file-extending I/O's.  Also in tmpfs.

* Use a marker in the vm_meter code and check for vmobj_token collisions.
  When a collision is detected, give other threads a chance to take the
  token.  This prevents hogging of this very important token.

Testing-by: dillon, vsrinivas, ftigeot