Add the ability to soft_reset a workflow.

In cases where it is not desired to reset the whole state
of the workflow, but only to soft_reset it so that it can
be easily resumed from a interrupted state (for example).
This change allows for that to happen, which involves also
keeping track of the last task that ran so when resumed via
soft_reset that task can be the one started off from (instead
of starting from the start of all tasks).

Change-Id: I034bd6af6445e3da52356328605368319c4ff6f9
Merge "Add the ability to soft_reset a workflow."