Fix fences
Create fences when requested by the guest and track based on the resource handle to be able to identify out-of order checks to see whether a fence was already signalled. In addition, add a fence for each command executed on the host, this mirrors the behaviour of qemu and is required to keep occlusion query tests passing.
Closes: #50 (closed)
Note: This patch also needs a mesa/virgl fix: https://patchwork.freedesktop.org/series/51863/