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: attach/detach device test

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>