generator: add always-available optgroups

Support the possibility to have optional groups always enabled (e.g.
because they were present in the past, and they need to be kept for
users).
Add and use few helper optgroups-related functions to deal also with
them.
Make realpath mandatory

commit a86eb0e0d2c67e2153139c681632edc72162b8ed made it an optional
feature, as on Windows it was not available; on the other hand, realpath
has been used unconditionally already for quite some time, so having
just the "realpath" command conditional on the presence of it does not
make much sense.

Drop the configure/build system handling of it, make the "realpath"
command no more optional, and keep the "realpath" feature as
unconditionally available now.
daemon: add sysroot_realpath

Similar to sysroot_path, but first resolves (using realpath) the given
path within sysroot.
daemon: scrub-file: resolve the path before calling scrub (RHBZ#1099490).

Resolve the given path within the chroot, so scrub can be invoked
outside the chroot on an already-resolved path.

Add few tests in scrub-file for this and other similar issues.
Version 1.27.12.
golang: Fix for out-of-tree builds

RWMJ:

This is half of a downstream Debian patch to fix out-of-tree builds
for golang.
fuse: Add guestmount --fd option (RHBZ#1100498).

This implements the guestmount --fd option to allow you to run
guestmount captive under another process (typically using
`guestmount --fd=<FD> --no-fork').

See: https://bugzilla.redhat.com/show_bug.cgi?id=1100498
fuse: Add a test of guestmount --fd option (RHBZ#1100498).
Version 1.27.13.
fuse: Skip guestmount --fd test if /dev/fuse does not exist.

When we run guestmount (eg. in Koji) it will fail anyway, so don't run
the test.
fuse: Skip test-fuse-umount-race.sh if backing file does not exist.
fuse: Make all the skip messages consistent in this test.
launch: libvirt: Add -device sga (sgabios).

This feature was added to libvirt in 2011-07-08 so we can assume it
exists.

Thanks: Jiri Jaburek
builder: support aliases for images (RHBZ#1098718).
ruby: add :nodoc: comment for internal methods

This way they are ignored by rdoc.
appliance: Increase udev timeout to 6000s (RHBZ#1096579).

If the image is located on NFS, and the NFS mount is performing a
large copy, then all other NFS operations stop.  This delay can be
large enough that we hit the current 10 minute timeout in udev.

Increasing this to 100 minutes is reported to cure the problem (in
reality we want udev to wait indefinitely).
appliance: Update packagelist for Mageia (RHBZ#1102448).
generator: fix daemon functions with optional params but no mandatory params

The
  struct guestfs_$function_args args;
declaration was not emitted in that case, leading to build failure.
Version 1.27.14.
appliance: remove extra comma in Mageia's list

Followup of commit 00d94d95c805ee027a9ef9e67f3979f1faada4a7.

Thanks Thierry Vignaud for the notice.