Add support for PCIe ARI

PCIe Alternate RID Interpretation (ARI) is an optional feature that
allows devices to have up to 256 different functions.  It is
implemented by always setting the PCI slot number to 0 and
re-purposing the 5 bits used to encode the slot number to instead
contain the function number.  Combined with the original 3 bits
allocated for the function number, this allows for 256 functions.
checkpoint sr-iov work
checkpoint: VF drivers can allocate BAR resources and MSIX interrupts
fixup! be0c09a4d6be2f06c257304e14faccca108646fc

Remove debugging printf
remove pci_vf bus and teach base PCI driver how to allocate BARs
for VFs.  Also hack up pci_read_config to emulate the VID and DID
registers as VFs do not implement them in hardware.
Use only one resource manager per IOV instance
add methods to notify drivers of SR-IOV config
checkpoint ixgbe SR-IOV work
Properly clean up the sr-iov rman