CT80 support and other enhancements

Added support for my CT80 ('CT80 Rev B2 V1.03') and added some API calls that I found potentially useful. 

There are now CT30 and CT80 base classes that the specific model classes are based on. CT50 uses CT30 because as far as I know they're functionally the same (please correct me if I'm wrong).

Attributes I added:
* it_heat - Set the heat setpoint without messing with your tmode
* it_cool - Set the cool setpoint without messing with your tmode
* swing - How far away from setpoint can we go before heat/cooling kicks on
* night_light - Self-explanatory. You can't get on/off status since it always returns the last-set intensity.

With it_heat and it_cool, they GET t_heat and t_cool since (at least with my thermostat) there *is* no it_heat and it_cool to fetch. Setting them works as expected, though.

These commits pass all existing unit tests and every attribute that I could GET works.