CP-8358: PCI subsystem device/vendor ID handling

These patches add the PCI subsystem device/vendor ID/name to PCI objects, parsing them from lspci output on xapi startup.

Support is also added for specifying a physical subsystem device ID in vGPU config files; xapi will take this into account when determining whether a vGPU configuration is supported on a discovered PCI device.

If a config file does not specify a physical subsystem device ID, xapi will interpret this to mean that only the physical device ID is required to identify a device which will support the vGPU configuration.
How can both `subsystem_vendor` and `subsystem_device` both be type `pci_property`? The syntax of the `pci.ids` file is:

    # Syntax:
    # vendor  vendor_name
    #       device  device_name                             <-- single tab
    #               subvendor subdevice  subsystem_name     <-- two tabs

I.e. there is just one name for each pair of these values. It seems this datatype doesn't quite encode the semantics the same way as `pci.ids`.