cmsg.3: ensure buf is suitably aligned in sending example

Inspection of the definition of CMSG_FIRSTHDR (both in glibc and
the suggested definition in RFC3542) shows that it yields the
msg_control field.  So when sending, the pointer placed in
msg_control should be suitably aligned as a struct cmsghdr.
In the sending example, buf was declared as a bare char array,
and so is not necessarily suitably aligned.

The solution here involves placing buf inside a union, and is
based on the sockets/scm_rights_send.c sample from The Linux
Programming Interface "dist" source code collection.

Signed-off-by: David Wragg <david@wragg.org>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>