This will allow us to properly do interrupts for XHCI devices in the
future.
Also move PCI device header parsing to a shared library.
Get rid of the old irq register format which supplied an irq number and
instead pass the appropriate irq number back out to the caller.
Move victoria falls to rust, which allows us to remove both the denali
and victoria falls C++ code. This disk driver appears to work properly
but has highlighted some instability in the voyageus xhci implementation
which now breaks.
This is a thin wrapper around a capability ptr that releases the
capability when it is done and prevents copying/cloning it.
To get a copy a caller must explicitly use duplicate.