state as a reactive property
This release changes the public API by replacing model.setState() and model.getState() with a new API, model.state. This model.state is a reactive property, so it can be used as a getter and setter. It also has an on method that can be used for listening to changes in state across all public properties. This is a new feature (demonstrated in these new tests.