MSI-x on KVM prevents VMs from accessing the network
Also, enable it (MSI-X on KVM) by default.
The receive queue was getting full before interrupts were enabled, which meant the device would never trigger any interrupts. We just needed to clear the queue as we enabled interrupts to solve this issue.
I also added a couple of small improvements to the vioif code in this diff.
KVM systems use a pci bus which always supports a version >= 2.2 of the PCI standard. When we're checking whether the system we're on supports MSI-x, we should recognize this fact (either by detecting the version of the PCI bus, or by recognizing that we're on KVM).