New API parameter: Add discard parameter to guestfs_add_drive_opts.

This adds a discard parameter to guestfs_add_drive_opts which
approximately maps to the discard=ignore|unmap parameter supported by
qemu.

If discard is set to "enable" then we force discard=unmap (and try to
fail if it is not possible).  If discard is set to the more useful
"besteffort" option, then we enable discard if possible.  The default
is "disable".
New API: blkdiscard - discard all blocks on a block device.
New API: blkdiscardzeroes - do discarded blocks read back as zeroes?
tests: Add tests of discard support.

Test that blkdiscard, -o discard, and fstrim work in reality, end-to-end.
Pass cachemode parameter from add-domain to add-drive.

Allow callers to specify that all the disks from a domain are added
with a specific cachemode (instead of always having to use the
default, writeback).
Pass discard parameter from add-domain to add-drive.

Allow callers to specify that all the disks from a domain are added
with a specific discard mode (instead of always having discard
disabled).
virt-format: Discard the data on the disks.

If possible, this means that the host will be able to reclaim most of
the space used by formatted disks.
sysprep: Add disks with discard = "besteffort".

Since virt-sysprep tends to delete a lot of files, adding discard
support to it makes some sense.

Note that this probably won't have any effect for most filesystems
since:

(a) ext4 mounts also need to use -o discard,

(b) ext4, and maybe others, require you to call fstrim explicitly,
they don't discard automatically (except for userspace tools like
mkfs.ext4 but that doesn't apply in this case).
sparsify: Add virt-sparsify --in-place mode.
sparsify: Add a test of the virt-sparsify --in-place option.
FAQ: Document virt-sparsify >= 1.26 can do in-place sparsification.
FAQ: Remove section that only applied to obsolete Fedora & RHEL releases.

Since this is fixed in all currently supported versions of Fedora
& RHEL, there's no need to document the problem in the FAQ.
FAQ: Make issues which will be fixed in libguestfs >= 1.26 / supermin >= 5.
appliance: Fix 'make clean' in appliance subdirectory.

Commit 71dfd73042db24217329d815bf5eab26f413d97f broke 'make clean' in
the appliance subdirectory, so it would remove all the supermin.d/*
files, but without removing stamp-supermin so you couldn't rebuild
supermin.d/ with a 'make' afterwards.

In any case, 'make clean' is not supposed to delete the appliance
(which is expensive to rebuild).

Fix this so that 'make clean' doesn't remove supermin.d/* files.
'make distclean' can be used to delete this, and since it also removes
stamp-supermin, it will be recreated properly by 'make'.