Split the STEP_DONE algorithmic operation in two
Description
Split the STEP_DONE
algorithmic operation in two: STEP_DONE
and REWIND_ALGORITHM
. This way the STEP_DONE operation is only executed once per step, which in turn allows to "override" it. As a consequence the mark_step_done and is_step_done methods of the algorithm class are not needed anymore.