avocado.virt.qemu.machine: Add uuid as a Machine() constructor param

Migration is a process by which VM state is transferred
to another instance of the virtualization system transparently,
and with virtually no downtime. This motivated us to model
the .migrate() method of the Machine() class preserving the
instantiated object (for all intents and purposes, it is
the 'same' virtual machine).

Therefore, it makes sense to have videos of a vm being migrated
as a single entity. Make uuid as one of the Machine class
constructor params, so that we have the option of making
migrated vms to keep the same uuid, and have them to behave
as a single entity for the purposes of vm video generation.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.devices: Add .add_nodefaults() method

Include a method to add the '-nodefaults' flag to the
QEMU command line.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.devices: Add .add_vnc() to Machine() class

Add a utility method .add_vnc() to the Machine() class,
used to append '-vnc :[port]' into the QEMU command line.

This patch also adds a port management system inside the
Devices() class, meaning that we will not use a port that
is either allocated or occupied.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.machine: Move migration port management to Devices

We're still a long way from a sane port management, but
this patch improves on the current status quo. By moving
the assignment of the -incoming tcp port to the Devices
class, management becomes uniform, more fool proof and
elegant.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>