avocado.virt.qemu: Introduce qemu templates.

Introduce qemu templates to create custom command line invocations.
The templates are native Python string templates with custom
tags that comes from values of `avocado.virt.qemu.devices` API.

The current tags are:

* {avocado_defaults}  all options, with qemu binary path included
* {avocado_qemu_binary}  the qemu binary path
* {avocado_devices}  the devices, without the qemu binary path
* {avocado_qmp}  qmp device
* {avocado_display}  display device
* {avocado_vga}  vga device
* {avocado_drive} drive device
* {avocado_network}  network device
* {avocado_serial}  serial device
* {avocado_vnc}  vnc device
* {avocado_fd}  floppy disk device

Some tags accepts to get internal values. For example,
from `avocado_drive` you can get the default disk image
with `{avocado_drive.drive_file}`.

Samples available in examples/*.tpl.

Here's a valid template:

```
{avocado_qemu_binary}
	-sandbox on -m 64
	{avocado_devices}
```

The invocation from the command line:

`avocado run --qemu-template example.tpl tests/qemu/boot.py`

Signed-off-by: Rudá Moura <rmoura@redhat.com>
Merge pull request #25 from ruda/qemu_templates_phase_II

avocado.virt.qemu: Introduce qemu templates.
avocado.virt.qemu.devices: Use Borg class from avocado base APIs

Due to its utility, the Borg class was moved to avocado.utils.data_structures
module. Let's get rid of the local copy in devices.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt: Mass PEP8 Fix

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.devices: Change docstring style, clarify some choices

Change the docstring style in that file to be more similar
to the style used in other files. Also, add a little bit
of explanation on why we call 'parts of the QEMU command line'
'devices'.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.devices: Remove unused parameter from add_nodefaults

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
avocado.virt.qemu.devices: Remove short intermediary method

Given the simplicity of the method, we might as well omit
the intermediary method.

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

There's really no need to use .port as a class attribute
(it's too generic), so let's remove it from the class
and keep using a method internal variable.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
Merge pull request #26 from lmr/use-borg-from-avocado-plus-fixes

Use borg from avocado plus fixes