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.
As discussed verbally, I don't think the semantic link between a subvendor ID and a top-level vendor is universally adhered to. My initial mental model was that, once within the 'namespace' of a vendor id and another 'namespace' of the device id, anything goes. It would seem like there are some devices that do not have the semantic link that this pull request assumes:

https://gist.github.com/simonjbeaumont/437a10c2879aca99c0d3