Introduced StepContext.saveState so that we do not lose state from a long-running step due to a restart.