sysprep: Perform operations in alphabetical order.

Previously we ran them in essentially a random order, although it
might have looked alphabetical in some cases because the modules are
loaded in order.
sysprep: Allow order of operations to be specified by modules.
sysprep: Pass debug and quiet flags to all modules.

Also use the Common_utils.make_message_function function to print
messages (same as virt-builder).
customize: Move virt-customize-related code to a separate directory.

Split virt-builder into build and customize steps, so that we can spin
off a separate tool called 'virt-customize'.  This commit does not in
fact create such a tool, but it moves all the common code into a
library, in the customize/ subdirectory of the source.

Although this is mostly refactoring, it does change the order in which
virt-builder command line arguments are processed, so they are now
processed in the order they appear, not the inflexible fixed order
used before.
customize: Add a --password option for setting user passwords.
sysprep: Use customize module for customizing the guest after sysprepping.

Note this removes the following modules (all replaced by 'customize'):

 - delete       [--delete, --scrub]
 - firstboot    [--firstboot]
 - hostname     [--hostname]
 - password     [--password, --password-crypto, --root-password]
 - random-seed
 - timezone     [--timezone]
sysprep: Remove the --autorelabel (and related) options.

The customize module includes an --selinux-label option which can run
'fixfiles restore' (on most SELinux guests) or set /.autorelabel (on
some older ones).

Commit 49014f81f350484da725f5ee2bc62bb24268a334 renamed the old
--selinux-label option to --autorelabel, but note this was not
included in a stable version of libguestfs.

Note this change leaves a bunch of now redundant code for detecting if
we created a new file in the guest.
Add virt-customize standalone tool.

This includes some simple tests and a manual page.