Added extra initialState property for reviving persisted FSM

This code allows to overwrite `initialState` with another state. When an FSM is restored after storing to a DB, this way it can continue from where it was persisted.

Another approach would be to move `state.initialState` property out of the definition and into the machine, but that would break compatibilty.