CP-5597: Add garbage collection for VGPU_types

Add database relation between VGPU types and the groups that they're associated
with.

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5597: Update GPU group's supported vGPU types on addition to the group

When a PGPU is added to a GPU group, the supported vGPU types are updated. This
means that when a PGPU is added to an empty group or the last PGPU is removed
from a group the supported types are added and removed respectively.

Aside: Moved to using int64 within xapi for the pci_{class, vendor, device,
subvendor, subdevice}_id. This enables better comparison rather than struggling
with discrepencies between database and vGPU conf files (leading '0x',
case-mismatch).

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>
CP-5597: Raise error when attempting to create vGPU without allowed VGPU_type

Signed-off-by: Si Beaumont <simon.beaumont@citrix.com>