intel.lua: Switched from new() function to one-module-per-NIC model.

This commit is extremely noisy because it changes the indentation
level in most of the file. So it will be hard to diff and so I have
kept it minimal:

1. Change module().
2. Unwrap module body from new().

Future commits will make it actually work.
intel.lua: Removed 'M' module dictionary. Functions are not local anymore.
intel.h: Moved FFI data structure defintions here.

These should always be defined exactly once;
intel and intel10g moduels both need them;
both of those modules can be loaded N times.

So better to put them in a simple header file.

Could be handy for C code to see this in the future too.
pci.lua: Bug fix - don't unbind devices from Linux if they are already unbound.
selftest.lua: Don't call port.selftest().

The expectation for now is that:
  selftest.lua calls pci.selftest()
  pci.selftest() finds all devices and calls their selftest()s.
  device (e.g. intel) selftest() calls port.selftest() as a library function.
port.lua: selftest() can now take a device for test as an option.
intel.lua: Updated for new I/O API.

Debugging needed.

Reclaiming transmit buffers not implemented.