I'm growing tired of having to add #include lines for header files that
the include file(s) I really want depend on.
Go through nearly all major system include files and add appropriately
#ifndef'd #include lines to include all dependant header files. Kernel
source files now only need to #include the header files they directly
depend on.
So, for example, if I wanted to add a SYSCTL to a kernel source file,
I would only have to #include <sys/sysctl.h> to bring in the support for
it, rather then four or five header files in addition to <sys/sysctl.h>.

Change CAPS over to use XIO instead of the vmspace_copy() junk it was using
before. This almost doubles CAPS IPC messaging performance.
Also correct a number of memory leaks due to incorrect reference counting.

Additional CAPS IPC work. Add additional system calls to allow a CAPS
server to set a generation number and a CAPS client to query it, which can
be used for any purpose but which is intended to allow a server to tell its
clients to invalidate their caches.
Add missing fork-handling code. CAPS links are only good on a thread-by-thread
basis. When a process forks/rforks/clones any active CAPS links will be
created as dummy entries in the forked process, causing CAPS syscalls to
return ENOTCONN. This allows code based on CAPS to detect when it has been
forked so it can re-connect to the service.
Make a slight change to the API. caps_sys_put() now returns an immediate
ENOTCONN if it forked. Note that userland CAPS code must still deal with
the case where a message has been sent and the connection is lost before the
reply is returned. The kernel automatically replies unreplied messages
with 0-length data in these cases.
Add additional flags to the API, including one that allows a client to
block when connecting to a non-existant service.

CAPS IPC library stage 1/3: The core CAPS IPC code, providing system calls
to create and connect to named rendezvous points. The CAPS interface
implements a many-to-1 (client:server) capability and is totally self
contained. The messaging is designed to support single and multi-threading,
synchronous or asynchronous (as of this commit: polling and synchronous only).
Message data is 100% opaque and so while the intention is to integrate it into
a userland LWKT messaging subsystem, the actual system calls do not depend
on any LWKT structures.
Since these system calls are experiemental and may contain root holes,
they must be enabled via the sysctl kern.caps_enabled.

Add a new library, libcaps, which is intended to encompass DragonFly-specific
core threading and IPC mechanisms.
As of this commit the library is very incomplete. It works just well enough
to run the IPC test program unthreaded. For the moment it is implemented
via unix domain sockets. The IPC mechanism is eventually expected to be
moved directly into the kernel and use an upcall for replies.