new widget: State, represents a widget state as a first class object; replaces (and extends) Conditional, removes the need for Conditional_Button