v2v: Update documentation for input & output classes.
v2v: Tests can use guests.xml not guests-all-good.xml.
mllib: Export output_spaces function.

This was already in Common_utils, but was only used internally
not exported.
v2v: DOM: Produce pretty-printed XML.
v2v: -o libvirt: <source file=...> must always be an absolute path.
v2v: -o rhev: Improve the error message when you pass a bogus -os parameter.
v2v: Add a test of --network and --bridge command line options.

This enhances commit aaf84abca9e19e6a358516b60cc8a49d0905aef5.
v2v: DOM: Add XML comments (<!-- .. -->) to the model.

This allows us to insert comments into the output libvirt XML or OVF.
v2v: Store original vnet, and add comment to output metadata when mapping it.

When we map the network or bridge names (using --network or --bridge
command line options), this commit keeps the original name and adds it
as a comment to the output metadata.

The comment will look something like this:

    <interface type='bridge'>
      <!-- bridge mapped from "VM Network" to "bridge1" -->
      <source bridge='bridge1'/>
      <model type='rtl8139'/>
    </interface>
v2v: -i libvirt: Select sensible defaults if <memory> or <vcpu> is missing from input XML.

If the <memory> or <vcpu> elements was missing from the source
metadata then we would choose useless defaults, resulting in (for
example) <vcpu>0</vcpu> being written to the output.

Choose sensible defaults for these integer values.