Extract most validation/initialization/preparation logic from pipeline execution steps into definition steps.
* Add a dryrun option; split init into init and exec * move the iterator method from pipeline to service to allow more context when preprocessing/initializing the pipeline * add an extra value to link's right rows to simplify identification