In order to use AMD SEV, devices that use virtio should also use
iommu driver. The problem is to understand that a device uses virtio,
because there are many attributes and values that can indicate it.
For example, it can be `model='virtio'` for rng and
`<target bus='virtio'/>` for disk.
Add new property for devices `uses_virtio`, that will indicate that a
device in its current configuration is a virtio device, and implement it
for known devices.
The patch does not change how resulting libvirt XMLs look and does not
fix user-visible bugs. This refactoring is required for further work on
AMD SEV related patches.
The changes to memballoon-related tests were required because the tests
were using fake values that does are not possible in real life and that
were preventing tests of the new method. The tests now use the value
that nova currently uses to generate libvirt xml.
Change-Id: I0f85918996128d573b5dbd6ac49a9c2356cd40a9
Partial-Bug: #1845986