A simple ActiveModel backed state machine.