util: use shm_open for in-memory files
shm_open
is a POSIX function creating an in-memory file. Using it simplifies the code and removes the dependency on XDG_RUNTIME_DIR
. The only downside is that we need to generate a random name for the shm file.