Created abstract base classes for device and drivers, changed the flow of driver loading / device probing
Bug fixing: parse_pci_config() is called from the device factory already, _have_msix isn't initialized