CP-5840: Populate new PGPU fields when upgrading the DB

Signed-off-by: John Else <john.else@citrix.com>
CP-5840: Make use of re-usable Pci_db optimisation

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5840: Set VGPU types when upgrading the DB

All existing VGPUs will be given the special "passthrough" VGPU type.

Signed-off-by: John Else <john.else@citrix.com>
Fix typo in logging for VGPU.destroy

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Bash completion for xe vgpu-type-list uuid=<TAB>

This was erroneously showing the uuids for vgpus, not vgpu-types.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Add type-model-name field vgpu-type-param-list

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
s/type/type-uuid in vGPU CLI params

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Add VGPU_type <-> VGPUs relation

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Expose VGPU_type.VGPUs on the CLI

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Add PGPU.capacity field

Signed-off-by: John Else <john.else@citrix.com>
Sanitise whitespace in VGPU config args

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5811: Add VGPU_type.{max_heads, pGPU_footprint}

Added the above fields to the datamodel. The max_heads is the number of
displays the VGPU type can support and is taken directly from the config file.

The pGPU_footprint is an abstract utilisation tracking metric and is internal
only. It is calculated using the max_instance field from the VGPU config.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Add helper functions for detecting the passthrough VGPU_type

Signed-off-by: John Else <john.else@citrix.com>
Expose PGPU.resident_VGPUs param on CLI

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Expose VGPU.resident_on param on CLI

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
Update API error message

Signed-off-by: John Else <john.else@citrix.com>
CP-5910: Implement Xapi_pgpu.assert_can_run_VGPU and supporting functions

Signed-off-by: John Else <john.else@citrix.com>
CP-5910: Move some code to xapi_pgpu_helpers.ml

Signed-off-by: John Else <john.else@citrix.com>
CP-5910: Update comments in xapi_pgpu_helpers.mli

Signed-off-by: John Else <john.else@citrix.com>
CP-5910: Variable rename for consistency

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