begin migrating all action handling to the device interface

This is so macro style commands (toggles, sending commands to multiple
interfaces) can be done from any interface natively. Macros still have a
purpose as a way to consolidate commands to multiple objects, and to
handle controlling multiple devices using one command that may be issued
from multiple interfaces. they are a bridge of sorts.

Still a bit more work to do, as part of the code has not yet been
migrated.
fnish moving macro style config handling for each interface into base
class
make the commander pass commands to the appropriate interfaces