Push the Service-Alias map down into the DeviceBindingConfiguration object, so device "property" settings are normalized as they're parsed to the full-form of the ServiceName
Add parsing for device|command: options on a DeviceBinding, parse the serviceName, serviceAction and serviceParams from this value, and put in some "defaults" if the serviceName isn't specified (use the same as the inBound binding) and params aren't specified (use "()" ) so that all end up with a normalized binding string within the code.
Move to a static contructor-method (create()) for all BindingConfig types, to better allow parsing to be done "after" construction.
Change MiosBindingConfig.toBinding() method include any outBound binding information present (eg.  ,update:HaDevice1/ToggleState  or  ,command:HaDevice1/ToggleState)
Start moving towards using StringBuilder instead of + in some parts of the code, to generate less garbage, and to execute non-sync.
Change the MiosPollCall so it only makes one device-update call (normalized), instead of two (normalized + aliased) so the code can run faster.