qemu: monitor: Retrieve blockstats also by qdev and node-names
qemu: monitor: Retrieve blockstats also by qdev and node-names

For use with -blockdev we need to be able to retrieve the stats by
'qdev' for the frontend device stats since 'device' will be empty. Note
that for non-blockdev case qdev and 'device' with 'drive-' skipped would
be the same.

Additionally so that we can report the highest written offset we need to
also be able to access them by node-name for backing chain purposes.

In cases when 'device' is empty it does not make sense to gather them.

Allow arranging the stats simultaneously in all the above dimensions.

Signed-off-by: Peter Krempa <2cf5c04c61aa466e4a47bfedc747d17279c72ffc@redhat.com>
Reviewed-by: Ján Tomko <4cab11cfb98d3c937327354a78eb07dbb6ee2bc6@redhat.com>

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