qemu: caps: Use unique key for domCaps caching
qemu: caps: Use unique key for domCaps caching

When searching qemuCaps->domCapsCache for existing domCaps data,
we check for a matching pair of arch+virttype+machine+emulator. However
for the hash table key we only use the machine string. So if the
cache already contains:

  x86_64 + kvm + pc + /usr/bin/qemu-kvm

But a new VM is defined with

  x86_64 + qemu + pc + /usr/bin/qemu-kvm

We correctly fail to find matching cached domCaps, but then attempt
to use a colliding key with virHashAddEntry

Fix this by building a hash key from the 4 values, not just machine

Reviewed-by: Jonathon Jongsma <c7254805a17bd5c41e24c3a278fcbf3afcdfb0fa@redhat.com>
Reviewed-by: Daniel Henrique Barboza <627b089ad62deae9aaf06ccfa2c9056df28927e0@gmail.com>
Signed-off-by: Cole Robinson <7cd45ff6ad1fb7cf556a02797d774247851499f8@redhat.com>

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