Lots of optimization

"Detected" varible now handled by bitflags so detected items don't
overwrite each other. Color still determined by priority, but now you can
see all detected devices by examining the multitool.

Refresh now handled by a ticker proc. Scans for devices roughly once per
second.

Everything is variables and procs now.