CP-5596: Have VM_start fail if vgpu fails to start

Factored out the code to start Qemu into a function that forks a daemon
and waits for it to finish initialising (with a write to XenStore). This
has then be reused to kick off the vgpu emulator binary which can now
fail in the same way if it doesn't initialise. vgpu is kicked off in
conjuction with Qemu since it's part of the device model.

Imported from xen-api.git 620069e60130e35eba8823c7538eb72fb3b36940

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Imported-by: John Else <john.else@citrix.com>
Fix a pattern match

It's only by chance that this pattern match worked as intended.

Imported from xen-api.git e9dfc845c82e68410184e76bdd9cd89d16963623

Signed-off-by: John Else <john.else@citrix.com>
Imported-by: John Else <john.else@citrix.com>
CP-5599: Allocate vGPU on VM start

Find a pGPU on which the vGPU can be allocated as part of the Vgpuops
performed by VM.start.

The strings used for the platform map have been added to
Xenops_interface to avoid transcription errors.

Imported from xen-api.git 5676980f5f75c54f5fc0f39b61445f5c8f4b689a

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Imported-by: John Else <john.else@citrix.com>
Log some more information about daemons started by xenopsd

Imported from xen-api.git 5fe42e5c6026d5bf41f9fcf9a22147331a3ca85c

Signed-off-by: John Else <john.else@citrix.com>
Imported-by: John Else <john.else@citrix.com>