virt-libvirt: New libvirt_xml accessor generators

* Small behavior fix on XMLElementText
* XMLElementBool: Treat "flag" elements as boolean values for presense
* XMLElementNest: Allows "nesting" an arbitrary LibvirtXMLBase subclass
                  then rerooting it's XML under a parent element
* XMLElementList: Represent duplicate child elements (valid in XML) as
                  if it were a list, with values marshaled to/from XML
                  and opaque values.
* Added unittests for all three

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Remove disused VM methods

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Fixup some unittest whitespace

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Implement libvirt_xml.devices.disk

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Rename address device property

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: XMLAttribute accessor behavior fix

All other "get" accessors raise xcepts.LibvirtXMLNotFoundError when
their data doesn't exist.  If this returns None, then caller may
mistake the value as None, when there is no value.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Fix broken restore() functionality

* The backup/restore logic inherrited by xml_utils.XMLTreeFile
  is backwards from the perspective of a caller.
* xml_utils.XMLTreeFile must re-parse the tree after restoring
  from the backup.
* Provide restore() convenience method so test code doesn't
  need to access xmltreefile attribute directly.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Don't take screenshots of dead VMs

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Fix short login timeout before reboot

Signed-off-by: Chris Evich <cevich@redhat.com>
virt-libvirt: Implement libvirt_xml.devices.disk

Signed-off-by: Chris Evich <cevich@redhat.com>
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>