ctor = function() {
    StateMachine.apply(this, arguments);
    this.paths = {};
    this.states = {};
  }
StateMachine.ctor('state1', 'state2', ...)
A factory method for subclassing StateMachine.
The arguments are a list of states. For each state,
the constructor's prototype gets state transition
methods named after each state. These transition methods
place their path argument into the given state.

@param {String} state
@param {String} [state]
@return {Function} subclass constructor
@api private