workflows: cleaning of engine calls

* Removes generation of another object snapshot when continuing a
  workflow causing many duplications in the database.

* Reuses the same workflow when continuing a workflow, as it was
  originally intended.

* Improves current workflow integration to be cleaner, using defined
  interfaces instead of updating closed variables.

* Adds new restart point, 'first', to re-start a workflow engine from
  first object and/or first task (callback).

* Removes resetting of engine `extra_data` when restarting workflow.

Signed-off-by: Jan Aage Lavik <jan.age.lavik@cern.ch>
Reviewed-by: Jiri Kuncar <jiri.kuncar@cern.ch>