this implements following improvements and optimizations for lspci
* removes the unecessary split between id and function
since everywhere we need that information, we stitch them together
anyway. to preserve ordering, simply order by id with string
comparison 'cmp' (this is important for the shorthand syntax '00:01' in
the config)
* returns now a list directly, instead of an hash with lists
* returns now always the vendor/device id and class[1]
* filter is now either a string (matches the id partially), or a
sub, which filters the device out if it returns a falsy value
* adds a verbose flag to include more information about the device,
such as device/vendor name, iommu-group, mdev support, etc.
this will be used for the pci scan api call for the gui