Simplify and refactor handling of MSI/MSI-X
This makes it easier to move to using pci_types for parsing PCI capabilities.
This also reduces the amount of device state left over from previous drivers or OSes that ran by ignoring the current MSI/MSI-X enable status when deciding whether to use MSI or MSI-X.