Add support for getting and setting GPT partition type GUIDs

New APIs:
  part_set_gpt_type
  part_get_gpt_type

Cherry picked from commit 956e30effa25eee00fb9e8f5303a6a1fe7409037.
daemon: Make gdisk into an optional dependency and optgroup.

Also document that gdisk is a dependency at all.

This fixes commit 956e30effa25eee00fb9e8f5303a6a1fe7409037.
(cherry picked from commit fa162417ed97218d528b8fa03cd22ad9ce788a56)
utils: Add utility functions guestfs___concat_strings and guestfs__join_strings.

These concatenate strings or join them with a separator in between.
(cherry picked from commit 2ee4d5e059840b518814dd6ce615627fe0a8391d)
Augeas >= 1.0.0 is now required.
(cherry picked from commit 2c4e7ad135b0a14021fad2b942f66b78af0041e0)
inspection: Fix hostname inspection because of faulty Augeas path expression (RHBZ#975412).
(cherry picked from commit 2343840936c900109b6675cc6e605026443ccf0a)
tests: Add a regression test for iface launch hangs (RHBZ#975797).

Cherry picked from commit d8a3185823e608dbddbc6185209951140b8f3b33
and some corrections made for libguestfs 1.20.
sysprep: New operation to remove RPM database files.

See:
https://lists.fedoraproject.org/pipermail/devel/2013-June/184389.html
(cherry picked from commit dd21bec4009ad6a65be1634b513be50ee668a63a)
src/file.c: Be sure to call guestfs___lazy_make_tmpdir before using g->tmpdir.

Although g->tmpdir is always set after launch, and none of these calls
should be used before launch, it's always possible that a caller would
use one of these APIs before launching the handle.

If guestfs___lazy_make_tmpdir is not called, then g->tmpdir is NULL,
and the constructed filename would look like "(null)/...".

In fact it's possible to observe this error (although it seems to have
no especially bad effects):

  $ strace guestfish ls / |& fgrep '(null)'
  unlink("(null)/ls1")     = -1 ENOENT (No such file or directory)
(cherry picked from commit 1937108a4a6070750f0d636f7dcc8725441cc4eb)
daemon: cap-get-file: Return empty string if no capability on file (RHBZ#989356).

Return an empty string (instead of an error) if no capabilities are
set on a file, and document that in the API.
(cherry picked from commit c663ab3bb9ab02fb3ca6209333c2d5402081c4de)
sysprep: rhn_systemid: delete osad-auth.conf file in RHN configuration
(cherry picked from commit 94e5ea6b5ef0d4e4f2d30b51cb5dcce175819456)
./run: Omit timeout -k option on RHEL 6.

If timeout doesn't have the -k option, don't use it.
(cherry picked from commit 8d68f1c5ceb5ac613393654bde58127e50c0f7bf)
RHEL 6: Emphasize libguestfs-winsupport package (RHBZ#627468).

This RHEL 6.1-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 6.1 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 6 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 6 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 6: Require external hex editor set with $HEXEDITOR.

RHEL 6 doesn't have the hexedit program or any suitable replacement.
Require that the user sets $HEXEDITOR to make this command work.
(cherry picked from commit 1ee31426e13446bc5fcce242eb496a01d8a78d8c)
RHEL 6: Directly include String::ShellQuote.

Directly include a snippet from String::ShellQuote so that we
don't need to depend on this external library, which is not
included in RHEL 6.1.

This affects virt-make-fs.
RHEL 6: Modify blkid test so it is successful on RHEL 6-era blkid.
RHEL 6: Remove libguestfs live (RHBZ#798980).

This isn't supported in RHEL 6.
RHEL 6: Exclude iptables from the appliance (RHBZ#858648).
RHEL 6: In mount-local docs, change refs to libguestfs 1.18 -> RHEL 6.4.

We backported the libguestfs 1.18 / mount-local functionality
into the libguestfs 1.16 codebase for RHEL 6.4.
RHEL 6: Ignore /etc/release if /etc/redhat-release exists (RHBZ#872454).

If the user has created /etc/release on a RHEL machine, don't
mis-detect the OS as NetBSD.
RHEL 6: Modify ruby Rakefile.in to work with older Ruby.