qemu: add support for new fields in FSInfo
qemu: add support for new fields in FSInfo

Since version 3.0, qemu has returned disk usage statistics in
guest-get-fsinfo. And since 3.1, it has returned information about the
disk serial number and device node of disks that are targeted by the
filesystem.

Unfortunately, the public API virDomainGetFSInfo() returns the
filesystem info using a virDomainFSInfo struct, and due to API/ABI
guarantees it cannot be extended. So this new information cannot
easily be added to the public API. However, it is possible to add this
new filesystem information to a new virDomainGetGuestInfo() API which
will be based on typed parameters and is thus more extensible.

In order to support these two use cases, I added an internal struct
which the agent code uses to return all of the new data fields. This
internal struct can be converted to the public struct at a cost of some
extra memory allocation.

In a following commit, this additional information will be used within
virDomainGetGuestInfo().

Signed-off-by: Jonathon Jongsma <c7254805a17bd5c41e24c3a278fcbf3afcdfb0fa@redhat.com>
Signed-off-by: Michal Privoznik <83d82aaba2eed257f4814b0c239c260c4caaadf0@redhat.com>
Reviewed-by: Michal Privoznik <83d82aaba2eed257f4814b0c239c260c4caaadf0@redhat.com>
Reviewed-by: Daniel Henrique Barboza <627b089ad62deae9aaf06ccfa2c9056df28927e0@gmail.com>
Tested-by: Daniel Henrique Barboza <627b089ad62deae9aaf06ccfa2c9056df28927e0@gmail.com>

crobinso/libvirt,zippy2/libvirt,jfehlig/libvirt,crobinso/libvirt,zippy2/libvirt,zippy2/libvirt,jardasgit/libvirt,nertpinx/libvirt,andreabolognani/libvirt,libvirt/libvirt,andreabolognani/libvirt,jfehlig/libvirt,fabianfreyer/libvirt,olafhering/libvirt,andreabolognani/libvirt,olafhering/libvirt,nertpinx/libvirt,zippy2/libvirt,fabianfreyer/libvirt,andreabolognani/libvirt,jfehlig/libvirt,andreabolognani/libvirt,jardasgit/libvirt,olafhering/libvirt,nertpinx/libvirt,crobinso/libvirt,nertpinx/libvirt,nertpinx/libvirt,crobinso/libvirt,libvirt/libvirt,fabianfreyer/libvirt,jardasgit/libvirt,jardasgit/libvirt,libvirt/libvirt,jardasgit/libvirt,olafhering/libvirt,libvirt/libvirt,jfehlig/libvirt,fabianfreyer/libvirt,fabianfreyer/libvirt