cgo: introduce SetErrno

I do not understand at all, but it seems working?
attr: change API

AttrPut() calls mnl_attr_put() directly.
add AttrPutBytes() same as old AttrPut() which param is []byte
add AttrPutData() which param is interface{} but requires pointer
nlmsg: add NlmsgPutHeaderBytes

just wrapping NlmsgPutHeader (== mnl_nlmsg_put_header)
examples: add nf-log
doc: update