Don't allow arc to mangle commit messages
Make libnv headers includable from C++
Tests of basic nvlist add functions
Add tests for nvlist_clone
Add tests for nvlist_pack/unpack
Add test cases for nvlist_move_*
Add tests for nvlist_take_*
Add tests for nvlist_free* functions
Add tests for dnv_get_*
Add tests for dnvlist_take_*
Implement asprintf in libkern
Add function to force an nvlist into the error state

Add an nvlist_set_error() function that can be used to force an
nvlist into the error state.  This is useful both for writing
tests and for writing APIs that use nvlists internally.
Split userland-specific stuff into its own file

Refactor libnv so that all functions that deal solely with
userland-specific data like file descriptors or sockets into a
separate file.  Some more generic functions have been untouched;
those functions will have the userland-specific parts #ifdef'ed
out ina subsequent commit.
Don't allocate memory for operations that do not insert

Almost every operation performed on an nvlist was allocating a
new string to hold the key name.  The nvlist_exists* family of
functions would always return false if they failed to allocate
the string.  The rest of the functions would outright abort().
Fix the non-varargs variants of the functions to perform the
requested operations directly and the varargs versions to
allocate the string and call into the non-varargs versions.
The varargs versions are still broken and really can't be fixed,
so we might consider axing them entirely.  However, now the non-
varargs functions are always safe to call.
Prevent creation of an invalid nvlist

Increase the maximum nesting depth of an nvlist to 10, and track
the current depth in the nvlist whenever an operationg that adds
or removes an nvlist child of an nvlist.  If an add operation
would violate the maximum depth, the operation fails and the
parent nvlist is set to the error state.

When unpacking an nvlist, ensure that we do not recurse past the
maximum depth limit.  Previously a malicious user could craft a
packed nvlist with an arbitrary level of nesting and the
nvlist_unpack() function could blow its stack when recursing.
This may be a security problem if any current consumers of libnv
call nvlist_unpack() on tainted intput.

If an nvlist is set as a child of another nvlist with
nvlist_move_nvlist then fail the operation and set the parent
nvlist to the error state.
Allow Illumos code to co-exist with nv(9)
Add macros to make code compile in kernel

Make it possible to compile libnv in the kernel.  Mostly this
involves wrapping functions that have a different signature in
the kernel and in userland (e.g. malloc()) in a macro that will
conditionally expand to the right API depending on whether the
code is being compiled for the kernel or not.

I have also #ifdef'ed out all of file descriptor-handling code,
as well as the unsafe varargs functions.
Move libnv into the kernel and hook it into the kernel build
Refactor PCI device creation

Refactor creation of PCI devices into helper methods that can be
used by the VF creation code.
Refactor PCI resource allocation

Refactor PCI resource allocation code to allow a request for a
memory-mapped I/O window that is a multiple of a requested size.
This is needed by the SR-IOV code because the VF BARs are all
allocated contiguously.  We can't just allocate a resource that is
a multiple of a single VF BAR because the size of an allocation
implies its alignment requirement.