memfd: internalize header

Fix the memfd.h header to use handy features like #pragma, cleanup-funcs
and util.h. Also drop the EXTERN-C macros.
memfd: don't open kdbus for memfd

No reason to open /dev/kdbus/control if we want memfds. memfd_create() is
always available.
memfd: disallow importing memfds without sealing

We use memfds for sealing. Lets not bother with memfds created without
MFD_ALLOW_SEALING for now. They're equivalent to random shmem files, so
don't bother treating them as sealable memfds.
memfd: map unsealed files as MAP_SHARED

We need to map sealed files as MAP_PRIVATE so far as the kernel treats
MAP_SHARED as writable mapping (you can run mprotect(PROT_WRITE) at any
time on those). However, unsealed files must be mapped as MAP_SHARED.
Otherwise, we never end up writing to the real file.
memfd: use _cleanup_ if applicable

We now have a sd_memfd_freep helper, use it if applicable.