Implement a rough ksocket direct callback format.

This works fine for UDP; however, for TCP like protocols where data loss
isn't expected, we need to do more work to better handoff between the
two forms. eg. we should have so_krecv_set make data callbacks rather
than just flush the buffer.
Encap and Decap functions shouldn't take mac_handle_t's as args

While we have the mac_handle_t in the case of encap, we're trying to
find the right one in the case of decap. Realistically all the functions
should just take a void * which ends up being their specific plugin
instance.
Fix up vxlan encap/decap bugs
Implement direct rx callbacks and pass that up to mac