handle: Process empty LIBGUESTFS_* environment variables correctly (RHBZ#1153515).

Ignore an environment variable:

 - if an environment variable is an empty string, AND

 - if an empty string would have no meaning for that environment
   variable (eg. LIBGUESTFS_BACKEND can only take on certain values,
   and an empty string is not one of them).

Note that LIBGUESTFS_BACKEND_SETTINGS is meaningful as an empty
string, and for this case I have removed the STRNEQ (str, "") test.

Previously:

$ LIBGUESTFS_BACKEND="" guestfish -a /dev/null run
libguestfs: error: invalid backend:

After this commit:

$ LIBGUESTFS_BACKEND="" guestfish -a /dev/null run

(no error message is printed)
v2v: -i ova: Fix it so it actually verifies SHA-1 hashes from manifest files.

There were two large bugs before: (1) It only found one manifest file
(meaning that multi-volume OVAs would be broken).  (2) The regular
expression didn't work so it wouldn't check the hash.  Bugs (1) + (2)
combined so that the check just didn't do anything at all, which is
why we didn't notice the multi-volume problem.

Actually I suspect we shouldn't be doing this check at all, since I
bet there are OVAs out there with broken SHA-1's.
tests: v2v: Test -i ova with two input disks.
v2v: Add new section on resource requirements of virt-v2v to the manual.
v2v: Print version of virt-v2v in debug output.

Easier than asking users to send us this information, which they often don't.
v2v: Windows: Fix quoting and type of viostor ImagePath parameter.

The way to fix these bugs -- for future reference -- is as follows:

(1) Install the corresponnding Windows version with virtio enabled.
See:

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/chap-KVM_Para_virtualized_virtio_Drivers.html

(the ".vfd" method)

(2) Download the SYSTEM and SOFTWARE registries from the
virtio-enabled guest.

(3) Examine each registry using 'hivexsh', especially the keys which
we modify during virt-v2v (see v2v/convert_windows.ml).  Remember to
use both the 'ls' and 'lsval' commands in hivexsh.

(4) Download the SYSTEM and SOFTWARE registries from the guest that
fails to boot.

(5) Examine the same registry keys from each registry using 'hivexsh'.

(6) Work out what the differences are, paying particular attention to
quoting and the type of each key (eg. str(1), str(2), etc).

Thanks: Matthew Booth.
v2v: Windows: Add &REV_00 variant, which is used by W2K8R2.
v2v: Add test files to EXTRA_DIST.

This fixes commit 852f2e8e3c3228be4b9cd2be5b1d5da10a41fe32.
Version 1.27.64.
RHEL 7: Emphasize libguestfs-winsupport package (RHBZ#627468).

This RHEL-only patch changes the error messages when the
inspection code cannot find an operating system inside the guest
image.  For a Windows guest this may happen because the user has not
installed the separate 'libguestfs-winsupport' package.  Therefore we
emphasize that the user may need to install this package.

Notes:

(1) In RHEL there are two pieces of inspection code, the old Perl code
(deprecated upstream) and the new C core inspection API.  Therefore
this patch has to touch two places with essentially the same change.

(2) This patch doesn't try to be clever and detect if it was a Windows
guest.  This should reduce the chance of failure.

Output from (Perl) virt-inspector now looks like this:

 $ virt-inspector disk.img
 No operating system could be detected inside this disk image.

 This may be because the file is not a disk image, or is not a virtual machine
 image, or because the OS type is not understood by virt-inspector.

 If you feel this is an error, please file a bug report including as much
 information about the disk image as possible.

 RHEL notice
 -------------
 libguestfs will return this error for Microsoft Windows guests if the
 separate 'libguestfs-winsupport' package is not installed. If the
 guest is running Microsoft Windows, please try again after installing
 'libguestfs-winsupport'.

Output from guestfish (ie. C core inspection API) now looks like this:

 $ guestfish -i disk.img
 guestfish: no operating system was found on this disk

 RHEL notice
 -------------
 libguestfs will return this error for Microsoft Windows guests if the
 separate 'libguestfs-winsupport' package is not installed. If the
 guest is running Microsoft Windows, please try again after installing
 'libguestfs-winsupport'.
RHEL 7: Remove libguestfs live (RHBZ#798980).

This isn't supported in RHEL 7.
RHEL 7: Remove 9p APIs from RHEL (RHBZ#921710).
RHEL 7: Disable unsupported remote drive protocols (RHBZ#962113).

This disables support for unsupported remote drive protocols:

 * ftp
 * ftps
 * http
 * https
 * tftp
 * gluster
 * iscsi
 * rbd
 * sheepdog
 * ssh

Note 'nbd' is not disabled, and of course 'file' works.

We hope to gradually add some of these back over the lifetime of RHEL 7.
RHEL 7: Remove User-Mode Linux (RHBZ#1144197).

This isn't supported in RHEL 7.
RHEL 7: v2v: Select correct qemu binary for -o qemu mode (RHBZ#1147313).

RHEL 7 does not have qemu-system-x86_64 (etc), and in addition the
qemu binary is located in /usr/libexec.  Encode the path to this
binary directly in the script.

Note that we don't support people running qemu directly like this.
It's just for quick testing of converted VMs, and to help us with
support cases.
RHEL 7: v2v: Disable the --qemu-boot option (RHBZ#1147313).

This cannot work because there is no Gtk or SDL output mode
in RHEL 7's qemu-kvm.

In addition you will have to edit the -display option in the
qemu script.
RHEL 7: Revert "tests: rsync: Skip this test when the backend is libvirt."

This reverts commit 765dc6237ce7b93dd2f33d99be53eae92e048a7a.
RHEL 7: Revert "appliance: Change example ping lines to ping 8.8.8.8."

This reverts commit 07c0926b588db5c86214917b609c2f477c817c0e.
RHEL 7: Revert "launch: libvirt: Use qemu-bridge-helper to implement a full network (RHBZ#1148012)."

This reverts commit 224de20b9a8d5ea56f6337f19b4ca237bb88eca0.
RHEL 7: Revert "appliance: add dhcp-client on Mageia"

This reverts commit 8f3a2ca5358d5601be7a9247b6d08193c4e2da46.