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.
5 jobs for extended-shm in 1 minute and 47 seconds (queued for 6 seconds)
Status Job ID Name Coverage
  Docker Image
passed debian-buster #12378720

00:00:22

 
  Build And Test
failed autotools #12378721

00:01:25

failed meson #12378722

00:00:47

failed meson-noglamor #12378723

00:00:52

passed mingw-cross-build #12378724

00:00:35

 
Name Stage Failure
failed
meson-noglamor Build And Test
files in cache                     40177
cache size 1.9 GB
max cache size 5.0 GB
Uploading artifacts for failed job
Uploading artifacts...
WARNING: build/test/piglit-results/: no matching files
ERROR: No files to upload
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
meson Build And Test
files in cache                     89669
cache size 4.4 GB
max cache size 5.0 GB
Uploading artifacts for failed job
Uploading artifacts...
WARNING: build/test/piglit-results/: no matching files
ERROR: No files to upload
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
autotools Build And Test
files in cache                     41246
cache size 2.0 GB
max cache size 5.0 GB
Uploading artifacts for failed job
Uploading artifacts...
WARNING: build/test/piglit-results/: no matching files
ERROR: No files to upload
Cleaning up file based variables
ERROR: Job failed: exit code 1