Rationalize the handling of ifb devices

The GUI currently can only create and tear down one SQM instance.
The limiting factor is that ifb devices are hard coded in run.sh,
in a quite inflexible way. This commit creates functions in functions.sh
that for a given interface will try to find an already existing ifb
defined for that device for tear down or re-use. Alternatively
the code will try to offer a currently unused IFB that has an
index <= numifbs. Work in progress.
Needs scrutiny!
Change the IFB selection routines to avoid reusing IFBs that are UP

Instead of hard codind IFB device numbers in run.sh, we now try
to slelect available IFBs somewhat smarter, to allow other concurrent
uses of IFBs in the system, like manualy set up qdiscs on other interfaces
than ge00. Unfortunately "tc -d qdisc" still reports unused IFBs and
I do not know an efficient way to figure out whether a given IFB is
"attached" to any other interface; so instead we now avoid the re-use of
IFBs that show up in "ifconfig". Note this works well with multiple htb
shapers on multiple interfaces IFF stop.sh makes sure to take IFBs down after use.
Take IFBs down when they are not used anymore

Make sure unused IFBs get marked as down so that the IFB selection
routines in functions.sh know these can be reused.
Remove IFB device selection from run.sh

Selecting which IFB to use for SQM on a given interface was handeled
statically in run.sh until now. This worked well for single IFB instances
but has two short commings. a) it does not honor people using theses IFB
before calling SQM and b) it does not play well with multiple SQM instances
as it assumes IFB device num to depend on the position in the SQM config file.
And that breaks if say the second of three instances gets disabled and/or removed.
It turns out that functions.sh and stop.sh are much better suited to
take care of selecting IFB numbers and have been changed to actually do this.
Needs eyeballs and testing...
Change the default target calculation to auto

To held SQM work smoother on low bandwidth links we try to increase
the codel/fq_codel target and interval variables to account for the
long times required at low speeds to transfer even one packet per interval.
This is based on work done by the french ISP free. Needs testing...
Exose the ability to create SQM instances for multiple interfaces in the GUI

Since the sqm-scripts now can handle creating and tear-down of multiple
SQM instances expose this capability in the GUI. Note nothing prevents the
user to request multiple SQM instances on the same interfaces, of which the
last one takes precedence. Needs eyeballs and testing.