Support for traversing graph backwards and jumping through the graph


Ideally if user goes back through back action or through direct jump (i.e. via URL) we should not alter FlowState in any way (including steps history). However once any side effecting action is taken (simply all next actions, which alter FlowState) then steps history should be reverted to the step on which action takes place. This way we would force user to reenter all the steps (as flow could have changed). Some improvement can be applied if performance is not the issue as not all side effecting actions will have an effect on the flow (i.e. when user has not yet arrived to the step which depends on the option modified).