CA-127324: Resync changed vendor and device names

If a device is installed at a point when its device ID is not present in
pci.ids, it will be listed with the device name "Unknown (<device-id>)".
If an updated pci.ids is installed later, the PCI object should be
updated with the newly available device name.

This commit also fixes the above for PCI vendor IDs and names.

Signed-off-by: John Else <john.else@citrix.com>
CA-127325: Don't try to read subvendor/subdevice IDs for physical devices

We don't need these IDs, and some devices don't implement them (in which
case the old sscanf fails).

Signed-off-by: John Else <john.else@citrix.com>
Move filter_chars to parse_lspci_line

Signed-off-by: John Else <john.else@citrix.com>
Add tests for parse_lspci_line

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