Adrian discovered we want to use kernel versions of at least
snprintf() so the kernel format extensions are supported, as required
by ether_sprintf().  I've transplanted the remaining functions from
sys/kern/subr_prf.c to lib/libuinet/uinet_subr_prf.c.
Merge github.com:pkelsey/libuinet into passive_receive_adrian
Add an evil, evil hack to register a userland hook via pfil on AF_INET.

pfil is the freebsd kernel packet filter API.  It ties into a few locations
and allows for link-layer, ipv4 and ipv6 packet interception and manipulation.
Here I'm using it as a poor mans bpf in order to sneak a peek at ip frames.

So:

* add an opaque type (uinet_mbuf) that userland sees as the mbuf;
* and a couple of hacky accessor macros;
* then add a function to register an ipv4 pfil hook;
* .. said hook also exposes the L2 information.

It's totally dirty but good enough for what I need at work.