Changes
- Added tilt methods to `BlindInterface`
- Detect system program events
- Refactor object interfaces to centralize parsing of `INVOKE` responses and status messages
- Moved to modern python typing syntax
Breaking
- Arguments to `LoadInterface.ramp` have changed to match the underlying method call
- `Thermostat.FanMode.OFF` has changed to `Thermostat.FanMode.AUTO` to reflect actual state
- All interface enums now match the case of the enum strings returned by Vantage (mostly PascalCase)
- Renamed `RGBLoadInterface.get_rgb_channel`, `RGBLoadInterface.get_hsl_attribute`, and `RGBLoadInterface.get_rgbw_channel` to match underlying method calls
- `RGBLoadInterface.get_color` now returns a packed integer, rather than a byte array