virttest.qemu_devices: Add support for USB controllers

this patch adds support to create USB controllers using qemu_devices.
This version supports all current options including usb-hubs plus
adds couple of new options.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
virttest.qemu_vm: Use qemu_devices to handle usbs

Use qemu_devices to create usb controllers and usb devices.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
virttest.qemu_devices: Add none_or_int wrapper

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
virttest.qemu_devices: Add support for disk devices and use it in qemu_vm

This patch changes the way of handling images, cdroms and floppies
params. Instead of custom handling in make_create_command it uses
wrappers in self.devices. It keeps track of all image buses according
to autotest.

It shouldn't change the way how autotest used to create disks. Anyway
few params which were omited for some devices were added. Also all
buses are tracked so in case there is no free bus it should create one.

This feature works 100% with strict_mode. For non-strict_mode there
might be few differences as qemu doesn't differentiate between ide and
ahci buses. Handling of this would require deeper modifications to
the way of images handling and will be discussed and resolved later.

Images should be added with the correct version of device thus we should
be able to unplug/hotplug the device in test.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
virttest.qemu_devices: Fix cdrom params

Original autotest ignored some params.

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>
Fixup: Param removable works only for scsi or usb disks

Signed-off-by: Lukáš Doktor <ldoktor@redhat.com>