v2v: Remove source.s_arch field and find architecture through inspection.

Previously we required that the source hypervisor knew the
architecture of the guest, and passed that through to KVM.

However this was error-prone for several reasons:

 - OVF (-i ova) doesn't define the architecture

 - Disk images (-i disk) don't have an associated architecture

 - Libvirt XML sometimes lacks the <type arch=...> field, especially
   for RHEL 5-era libvirt.

 - It might not be set correctly for the guest.

We know the real architecture from inspection of the guest, so use
that instead.
aarch64: Add support to file_architecture API.

Add support for aarch64 to the file_architecture API, so we can
detect aarch64 guests correctly.

Add a test binary and library.  These were generated on an aarch64
machine by doing:

  echo 'main(){}' > bin.c
  gcc bin.c -o bin-aarch64-dynamic
  strip --strip-all bin-aarch64-dynamic
  echo '' > lib.c
  gcc -shared lib.c -o lib-aarch64.so
  strip --strip-all lib-aarch64.so
v2v: Clarify description of ov_sd field in comment.
v2v: Move target actual size computation into core v2v.ml code.

This was only calculated for RHEV, but might benefit other output
modes in future, and is generic code, so move it into the core code.
v2v: Move mpstat type definition.

It's only used by the core v2v.ml code, so move it to that file.

This is just code motion.