Add extended shared memory attach structure

This provides an extended version of `X_ShmAttachFd`, called
`X_ShmAttachFdExt`, which allows the client to specify two additional
parameters:

1. The size of the mapping, in bytes.
2. The offset that should be passed to `mmap`, in bytes.

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 X server to map the `/dev/xen/gntdev` character
device, which represents memory shared from a different virtual
machine.  This is currently accomplished with an `LD_PRELOAD`’d
shared library that overrides `shmat`, `shmctl`, and `shmdt`, and
I have written a version that instead overrides `fstat` and `mmap`.
With this extension, the preloaded shared library will not be required.
9 jobs for DemiMarie-master-patch-62720 in 1 minute and 23 seconds (queued for 14 seconds)
latest
Status Name Job ID Coverage
  Prep
passed container-prep #12123875

00:00:11

 
  Build
passed autotools: [] #12123878

00:00:45

passed autotools: [--enable-legacy] #12123879

00:00:43

passed meson: [] #12123876

00:00:11

passed meson: [-Dlegacy=true] #12123877

00:00:10

 
  Test
passed check evdev keysyms #12123882

00:00:13

passed check versions are in sync #12123883

00:00:17

passed compare meson and autotools #12123881

00:00:25

passed meson from tarball #12123880

00:00:14