unattended-installer: Extract boot files before injection

This moves the extraction of the boot files to be before the injection
of the automated installation scripts. This is necessary since in some
cases (e.g. Debian-based OSes) these scripts will be placed within
these boot files.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
Require libarchive 3

Libarchive will be used for archive handling for the express
installation feature. E.g. debian based OSes require the installation
script to be injected into the initrd archive. This will be applied in
the following patches.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
util: Add libarchive helper functions

These functions will be used by the following patches to introduce a
libarchive wrapper. They provide the capability to handle the
Archive.Result type.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
Add wrapper for Archive.Read

The ArchiveReader is capable of reading archives through libarchive.
It primarily provides an file extraction functionality.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
Add wrapper for Archive.Write

The ArchiveWriter provides the functionality of creating archives
(either from existing ones or new) and writing files to it.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
unattended-file: Introduce disk_file prop

This provides the possibility to override the disk file in the derived
classes of UnattendedFile to copy to initrd file rather.

This will be needed for supporting initrd injection method for express
installation.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
unattended-file: Correct spacing

https://bugzilla.gnome.org/show_bug.cgi?id=730640
unattended-file: Use libarchive for non-DOS images

In the following patches Boxes will learn how to handle non-DOS images.
For these new formats we need libarchive for copying. As libarchive and
its wrapper only have a sync API we need to run it in an own thread.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
media-manager: Use original media if unattended setup fails

If the UnattendedInstaller instance cannot be created, fallback to the
original installation media.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
unattended-file: Ensure DISK injection method is supported

Prior to this, injection methods were just assumed to be DISK. We should
check if it actually is supported before using it.

https://bugzilla.gnome.org/show_bug.cgi?id=730640
unattended-file: Handle INITRD injection method

https://bugzilla.gnome.org/show_bug.cgi?id=730640

Conflicts:
	src/unattended-file.vala