gdbus-codegen: Emit GUnixFDLists if an arg has type `h` w/ min-version

This is a reimplementation of commit
4aba0356 from Will Thompson, but
conditional on the caller passing `--glib-min-version 2.64` to
`gdbus-codegen` to explicitly opt-in to the new behaviour.

From the commit message for that commit:

Previously, if a method was not annotated with org.gtk.GDBus.C.UnixFD
then the generated code would never contain GUnixFDList parameters, even
if the method has 'h' (file descriptor) parameters. However, in this
case, the generated code is essentially useless: the method cannot be
called or handled except in degenerate cases where the file descriptors
are missing or ignored.

Check the argument types for 'h', and if present, generate code as if
org.gtk.GDBus.C.UnixFD annotation were specified.

Includes a unit test too.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1726
12 jobs for 1726-codegen-glib-min-version in 32 minutes and 26 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Style Check
passed #518089
allowed to fail
style-check-diff

00:01:05

 
  Build
passed #518093
cross-android_api21_arm64

00:03:13

passed #518094
cross-android_api28_arm64

00:01:17

passed #518095
cross-mingw64

00:01:53

passed #518091
debian-stable-x86_64

00:06:13

passed #518090
fedora-x86_64

00:11:15

passed #518092
G_DISABLE_ASSERT

00:06:16

passed #518096
win32
msys2-mingw32

00:07:35

passed #518097
win32
vs2017-x64

00:07:47

 
  Coverage
passed #518098
coverage

00:01:49

77.9%
 
  Analysis
passed #518100
scan-build

00:15:10

failed #518099
allowed to fail
valgrind

00:00:50

 
Name Stage Failure
failed
valgrind Analysis
Uploading artifacts...
_build/config.h: found 1 matching files
_build/glib/glibconfig.h: found 1 matching files

_build/meson-logs: found 5 matching files

Uploading artifacts to coordinator... ok
id=518099 responseStatus=201 Created token=6d_Y2jBZ
Uploading artifacts...
WARNING: _build/valgrind-report.xml: no matching files
ERROR: No files to upload
ERROR: Job failed: exit code 1