Huge change: migrate from global variables to variables per device.

First version that almost compiles cleanly.
The remaining changes.  Hopefully final.
Final list of changes with pointer initialisation fixes.

Time for a field test.
Ok, now it should work for non-multiqueue qdiscs as well.
Fix -DDIRECT for new changes.  Both -DQDISC and -DDIRECT seem to work.