Support for broadcoms multifunctional devices

bnc#841170, fate#316090

and cleanup and so on.
Please don't. This `def` nesting only adds confusion, not value. Did you know that hwstrings is a sibling of `confirmed_detection`, not its child? Simply make `hwstrings` a local variable.