refactored device state interfaces
For example, now there's IThermostatState, which has properties, IThermostatActions (new), which has methods, and IThermostat, which simply inherits from the other two.