gtkswitch: Allow to set state FALSE while keeping active TRUE
Decouple set_state with set_active. Allow the user to set a state that doesn't reflect the active property. In particular, allow for setting a FALSE state independently of the active property. Allow a TRUE state only if the active property is TRUE.