Virt sysprep

I can't make it a separate pull request to next since we're in a freeze, but there's nothing against moving some of my #563 code into your #885.  That's what this pull request does, and will let you use the disk device interface as discussed: https://github.com/autotest/virt-test/pull/885/files#r6983521

I think if you rebase your virt-sysprep branch against upstream/next first, then this pull request should have much fewer commits in it.  Anyway, if you accept this, it will bring in all my ``libvirt_xml.devices.disk`` updates in to your branch.  I'm open to comments/criticisms on all my contributions also :)