options: Compile out part of union which cannot be used when not compiling guestfish.
rescue: Use guestfs_add_drive_scratch to implement the --scratch option.
v2v: Allow relative paths to appear in -i libvirtxml input.

When writing libvirt XML by hand, or for tests, this is
immensely useful.
run: Add v2v/ subdirectory to $PATH.
v2v: Print qemu-img source overlay command when using -v.
v2v: string_of_overlay already has trailing \n, don't need to add one.
v2v: Dump out 'source' structure when debugging.
v2v: Print \n after warnings.

Using eprintf so this is not implicit (unlike 'error' function).
v2v: In -o local mode, name disks <name>-sda instead of disk-sda.

This allows us to use the same shared output directory for multiple
parallel tests.
v2v: Avoid segfault if xpath expression doesn't match any nodes.

I'm not sure if this indicates that the xpath expression is wrong, but
in any case it can be that xpathobj->nodesetval is NULL.  In this
case, return 0 from xpathobj_nr_nodes instead of segfaulting.
v2v: When parsing input libvirt XML, get correct disk image format.

Old Xen PV guests had:

      <driver name='tap' type='aio'/>

The previous xpath expression matched any driver type attribute in
order to pick up the format.  However we only want to match:

      <driver name='qemu' type='raw'/>

so we need to check the name attribute as well.
mllib: Move common code for comparing version strings to library.
v2v: In convert function, add a hash of app name -> app structure.

For quicker lookups than searching the linear list.
v2v: Warn only if virtio packages are missing from the guest.

In this version of virt-v2v you have to install a virtio
capable kernel before doing the conversion.
mllib: Add an interface for Common_utils library.

It turned out that Common_utils was exporting the 'G' module (an alias
for Guestfs).  We want any code that uses G as a shortcut to declare:

  module G = Guestfs

at the top, since that avoids confusion for newbie (or experienced)
OCaml programmers.
mllib: Add a common 'warning' utility function.

This commit changes many places in OCaml utilities that print
warnings to use the warning function instead.
v2v: Rename Convert_linux_common -> Lib_linux.

Just library name refactor.
v2v: Rename Convert_linux_enterprise -> Convert_linux.

Just module rename.
v2v: Create a shared StringMap module.
v2v: Create apps_map when doing inspection step.