virt-libvirt: attach/detach device test

This is a kind of sub-framework for performing both virsh-command operational
and VM-functional testing with arbitrary collections of devices.  Types, numbers
and parameters for devices can be class-specific or generic.  All testing for
each device is specified by overriding an abstract base class.  The main
test code then facilitates creation/destruction of lists of device class
instances, and gathering results.

Signed-off-by: Chris Evich <cevich@redhat.com>