Add in a hack to expose the general sysctlbyname API.
Migrate uinet_sysctl() to uinet_sysctlbyname() - it's the correct name for it.

Implement uinet_sysctl().
Rename uhi_thread_get/set_thread_specific_data() to something more specific.
Merge branch 'passive_receive' of github.com:pkelsey/libuinet into passive_receive_adrian
Audited and straightened out thread startup and teardown.  Leaks have
been fixed.  Outside threads that have called
uinet_thread_initialize() should call uinet_thread_finalize() before
exiting.
Instead of dynamically determining the current cpu for uinet threads,
track it in td->td_oncpu.  For outside threads, the value is
established when uinet_initialize_thread() is called.  If the cpu
binding is subsequently changed, uinet_initialize_thread() should be
called again to update the uinet tracking value.  This approach avoids
a significant number of syscalls and achieves the same result.
Added if stats counters for input and output copies and zero copies.
Also added missing stats updates in uinet_if_pcap.c.
Merge pull request #1 from erikarn/master_adrian

Merged Adrian Chadd's exposure of sysctl routines in the UINET API.
Moved uinet_sysctl*() from uinet_config_kernel.c to uinet_api.c, which
is where everything should accrete until the next API cleanup pass.
Merge branch 'master' into passive_receive
And... move the uinet_sysctl*() prototypes to uinet_api.h.
Merge branch 'master' into passive_receive
Merge github.com:pkelsey/libuinet into passive_receive_adrian

Conflicts:
	lib/libuinet/uinet_config_kernel.c
Preparation work for unifying the sysctl and sysctlbyname routines

* remove the #if 0'ed out code from sysctlbyname
* pull out the state from the sysctl oid routine into a struct, so it
  can be passed into some worker functions.