created IFanActions and IFan
Just like how IThermostatState and IThermostatActions make IThermostat.  Doing this with a sub-device makes sense too.  Separation of concerns and all that!