Add extended shared memory attach support

This provides an extended version of `create_pool`, called
`create_pool_ext`, which allows the client to specify an offset in the
file to map at.

The intended use-case for this extension is when one needs to map
a drawable from a character special device, but it can also be
used with regular files if one needs to map with a nonzero offset.
Qubes OS needs the Wayland compositor map the `/dev/xen/gntdev`
character device, which represents memory shared from a different
virtual machine.  Currently, this can be accomplished by opening a
separate instance of `/dev/xen/gntdev` every time, but that is slightly
wasteful and relies on undocumented behavior in the kernel driver.

As Wayland does not support 64-bit integers, the offset is passed as two
32-bit numbers.  Client libraries should hide this difference if
possible.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
3 jobs for shm-mmap-offset in 44 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Review
passed #12037299
check-commit

00:00:11

 
  Prep
passed #12037300
debian:buster@container-prep

00:00:11

 
  Build
passed #12037301
build-native

00:00:21