Switch SQM to use named IFB devices instead if ifb0 to ifbN

Generic indexed ifb devices are somewhat inflexible in that it is hard
to find which interface a given ifbN is assiciated to (if any at all).
Since SQM wants to avoid interfering with other users if IFBs on
cerowrt and potentially openwrt as well, we switch to named ifb devices.
It will be much harder for a user to accidentally create IFB names
similar to our scheme (currently: "ifb4${DEV_NAME_OF_ASSOCIATED_INTERFACE}").
Also SQM will most likely not go wild and ceate to many indexed IFBs
as has been noticed in the wild with the old implementation. Ideally
we would use a scheme like "ifb_SQM_${DEV_NAME_OF_ASSOCIATED_INTERFACE}"
BUT IFB names need to be no longer than 15 characters and with unwieldly
interface names as pppoe-ge00 that scheme does not really work....
For to long interface names the new implementation will chop off the
extra characters from the beginning of the interface names, under the
assumption that the identifying characters are at the end (based on pppoe-ge00).
For now we leave the old function in place that tries to find the lowest
unused indexed ifb name, but if the new implementation survives some testing
that ugly function can be deleted...

WARNING while this works for me it is only lightly tested and needs
EYEBALLS badly, please help out if you can...

Also this patch reorders some variables in funcrtions.sh.