shared: Use memfd_create() when available

This (so-far) Linux-only API lets users create file descriptors purely
in memory, without any backing file on the filesystem and the race
condition which could ensue when unlink()ing it.

It also allows seals to be placed on the file, ensuring to every other
process that we won’t be allowed to shrink the contents, potentially
causing a SIGBUS when they try reading it.

This patch is best viewed with the -w option of git log -p.

It is an almost exact copy of Wayland commit
6908c8c85a2e33e5654f64a55cd4f847bf385cae, see
wayland/wayland!4

Signed-off-by: Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
2 jobs for memfd in 1 minute and 32 seconds (queued for 2 seconds)
latest
Status Job ID Name Coverage
  Container Prep
passed #446812
container_prep

00:00:34

 
  Build
passed #446813
build-native-meson

00:00:57