CP-6751: Add max_resolution_{x,y} to VGPU_type

These are parsed from the NVIDIA config files in the same way as the other
parameters. The config file specifies a single string for max_resolution which
we split into its dimensions.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-6751: Show max-resolution for VGPU_types on CLI

This is displayed as a single value (rather than dimensions) e.g. 1920x1200.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Change default fields displayed for vgpu-type-list

Remove framebuffer-size in favour of max-resolution and max-heads.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Merge pull request #1538 from simonjbeaumont/cp-6751

Add max_resolution fields for VGPU_type record
Merge pull request #1537 from johnelse/cp-6826

VMs with vGPUs should not be considered agile
CA-115521: Change the way we use the platform map for vGPU setup

Instead of setting platform:vga=vgpu, xapi now sets
platform:vgpu_enabled=true. If this new flag is set, 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).

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