Enable reuse of low-level netlink functions

Factors out basic netlink functions into the nlmsg package.

Note that this does not provide forwarding for functions previously
exported from Netlink, but now exported only from nlmsg.  While
technically a breaking change, I'm not sure if these functions could
have been meaningfully used from netlink.  I'm happy to implement
forwarding function if needed though.

Addresses #218
typo struts --> structs.