Automatically find and take over available PCI ethernet adapters.

selftest.lua now tests every suitable NIC automatically. No config needed.

pci.lua now contains logic to scan /sys/bus/pci/devices/* to see which
PCI devices are available and which ones are suitable for use by the
switch.

Devices are suitable if:
  They use an ethernet controller supported by our driver.
  The device is not used by the OS *OR* the interface is in 'down' state.

The selftest code unbinds interfaces from the OS and doesn't rebind them.
That means you won't see them in 'ifconfig' anymore, for example.

If you want to give a device back to the kernel driver then do this:
  echo '0000:00:04.0' > /sys/bus/pci/drivers/e1000e/bind
(with the right PCI address, of course.)

Here is a transcript of how the scanning process looks:

selftest: pci
Scanning PCI devices:
pciaddr         vendor  device  iface   status
0000:00:00.0    0x8086  0x1237  -       -
0000:00:01.0    0x8086  0x7000  -       -
0000:00:01.1    0x8086  0x7010  -       -
0000:00:01.3    0x8086  0x7113  -       -
0000:00:02.0    0x1013  0x00b8  -       -
0000:00:03.0    0x10ec  0x8139  eth0    up
0000:00:04.0    0x8086  0x10d3  eth1    down
0000:00:05.0    0x1af4  0x1001  -       -
Suitable devices:
  0000:00:04.0
Testing device: 0000:00:04.0
Unbinding PCI device 0000:00:04.0 (eth1) from the operating system driver.