We do this by adding a new interface MSI controllers need to implement.
The intrng framework manages these in a similar way to the existing
interrupt controllers so the code to manage lists of controllers has
been generalised.
The MSI controller is expected to work with an interrupt controller.
As such the interface will return the PIC that will handle the interrupt.
This has been tested with the generic PCIe controller driver, and the
GICv2m MSI controller.