drivers: group drive creation params in an own struct

Group together all the various parameters (except the guestfs handle)
passed to the create_drive_*, to avoid passing all of them at every
function call.

This is mostly an internal refatoring with no behaviour change.
builder: show the architecture in the short --list output

Just like the other --list output formats provide the architecture, show
them also in the short format.
builder: complete architecture handling

Add the possibility to choose which architecture use to build the wanted
image (--arch). Since this implies that running commands on the guest is
usually not possible when the architecture is different than the host
one, virt-builder will nevertheless try to check whether the host is
compatible with the guest, allowing to run commands only in that case.

The caching scheme is adapted to account for the architecture (with
--print-cache showing the architecture as well).