CA-115521: Change the way we use the platform map for vGPU setup

Instead of setting platform:vga=vgpu, xapi now just sets
platform:vgpu_pci_id and platform:vgpu_config. The presence of both of
these keys indicates that the VM's display mode needs to be Vgpu, and
the value of platform:vga is overridden.

This means that when a vGPU is removed from a VM, the display emulation
mode will revert back to what it was before the vGPU was added.

Signed-off-by: John Else <john.else@citrix.com>
CA-115521: Add unit tests for video mode override

Signed-off-by: John Else <john.else@citrix.com>
CP-6853: Add a means of manually setting up vGPU for a VM

Setting platform:vgpu_manual_setup=true means that xapi won't change any
of the other platform fields used for setting up a vGPU, so a vGPU can be
set up manually.

Signed-off-by: John Else <john.else@citrix.com>
CP-6853: Add a means of passing arbitrary arguments to vgpu

The contents of VM.platform:vgpu_extra_args (if any) will be passed to
the vgpu process (and in turn to the NVIDIA plugin).

This change also removes the vgpu_vnc_enabled key, since it can be
passed via the new mechanism (and is also mostly obsolete, since VNC
disabling is now automatic).

Signed-off-by: John Else <john.else@citrix.com>
CP-6853: Add some extra video mode override tests

Make sure the video mode override code works as expected if a user has
tried to manually configure a vGPU but hasn't done it properly.

Signed-off-by: John Else <john.else@citrix.com>
Merge pull request #1541 from johnelse/vgpu-platform-changes

VGPU debug API plus a bug fix