p2v: Add usb-storage module and rebuild initrd (RHBZ#1157679).

Include the usb-storage kernel module, to permit booting from USB
keys.

Rerun dracut to rebuild the initramfs.  This is complicated because by
default dracut will try to build an initramfs for the running
(ie. appliance) kernel, which is completely useless.  We need to find
the latest installed kernel and rebuild the initramfs for that
instead, which is hairy.

This also does a small refactoring of the distro-specific code,
removing the $selinux_relabel variable and replacing it with a generic
$extra_args variable.

I only added this to the virt-builder script, since one assumes that
livecd-creator/whatever should make the kickstart ISO bootable by
installing whatever drivers and modules are necessary.

(cherry picked from commit b09b60c987ff113bc4520ab994142da912ffa3d6)
Add warnings about using guestfs_strings* APIs because of CVE-2014-8484 and CVE-2014-8485.

(cherry picked from commit 777e2175abe5d8ab6687d11d817827080ae6f7ff)
Document three (fixed) security problems in the main manual page.

Previously these were only covered in the release notes, but not in
the "SECURITY" section of guestfs(3).

(cherry picked from commit 7f7c15334722b975722e43ccd5308fc74a4ad453)
p2v: Ensure we are using virt-v2v >= 1.28.

Must NOT use:

- One of the interim versions of virt-v2v (1.27.x) that we published
  during development.

- Old virt-v2v (0.9.x).

Also use the --version option (instead of -V) since old virt-v2v
required it:

  $ virt-v2v -V
  Option v is ambiguous (version, vmtype)
  Usage:
  [...]
  $ virt-v2v --version
  0.9.1

(cherry picked from commit cb291d7e4642547da5551f8686bbc46a911377af)
builder: Document that --edit option can be split across lines.

(cherry picked from commit 6d338ae4e64ef7c41bba74f66809b63158e49311)
v2v: Add a support matrix to the manual page.

This explains what does and doesn't work.

(cherry picked from commit a03bffa15a5357d5d0244595caf99607be1ec3ab)
p2v: kickstart: Name the ISO 'virt-p2v'.

(cherry picked from commit 439bf5e42ac5396eed8911e2d2698ceb4603f0a8)
p2v: kickstart: Add firewalld to the ISO to allow firewall to be enabled.

(cherry picked from commit c48114cd24d630ac66bd683c3593c33d43f712a6)
p2v: kickstart: Remove 'install' line.

'install' is the default operation, it doesn't have to be specified.

(cherry picked from commit 26952db56ffab1bc93c7f57c43e785f62d44854f)
p2v: kickstart: Add rpm to list of packages.

Avoids RHBZ#1089566.

(cherry picked from commit 8efbe49df6d53666bd5a6031f45f45ceb1408fb8)
v2v: Remove useless parentheses around expression.

(cherry picked from commit d82c5fb5a0c86345891ee191ae7d820361978643)
v2v: vmware: Use 'curl --config' to pass arguments securely to curl.

Instead of making up an ordinary curl command line, write a temporary
config file and use 'curl --config tmpfile' to pass the arguments.

The advantage is that it's more secure if we want to supply passwords
to curl, since a '--user username:password' parameter on the command
line could be read (eg. by 'ps ax'), but the temporary file has mode
0600 and cannot be read by other users.

This is mostly code motion, but it also passes the '-q' option to curl
to stop it from reading default configuration files.

(cherry picked from commit b35b84684c845ceefd3c0ec519caf80366a798ea)
v2v: Add --password-file parameter (RHBZ#1158526).

This allows you to send passwords to virt-v2v input modes without
being interactive.

(cherry picked from commit 65abc4420325c1226b002f2304709b2040160877)
src/info.c: Remove incorrect comment.

(cherry picked from commit 847465a79422d30509dc2829578c059db78366bd)
builder: Updated CentOS image to 6.6.

(cherry picked from commit c085a0ba73858769fba1f88855cff59dea29afcf)
v2v: Add bounds check to Xml.xpathobj_node function.

I accidentally called it with an out-of-bounds index, and it caused a
core dump.  Add a bounds check to stop this from happening in
production.

(cherry picked from commit 1470be7f3b36b9ba6862fd04aa66446e89b108a7)
builder: move the gpgkey_type type from Sigchecker to Utils

No functional change, just code motion.

(cherry picked from commit 3987bbcd91fd134d04d92406859486d51c90af40)
builder: use gpgkey_type for the gpgkey field in sources

(cherry picked from commit 56bd781b76471cdce2602b34971f2f32b1ac1285)
builder: pass Sources.source objects directly

Instead of passing the (uri, key, proxy) tuple around, pass the whole
Sources.source record; this requires creating proper Sources.source also
for uri+fingerprint passed via command line.

No functional changes.

(cherry picked from commit d082cd6ae573956d1973e43e29edb819edb21e6e)
fish: fix dir completion on filesystems w/o dirent.d_type (RHBZ#1153844).

On filesystems whose dirent.d_type is DT_UNKNOWN or some unknown value,
manually check whether an entry is a directory, thus completing in the
proper way.

(cherry picked from commit a8b95a5535480c7b382fab82dcaf18eb67e5278a)