Moved the logic whether a stage should be executed or not into AbstractDistStage
Removed DefaultDistStageAck
* each stage which wants to send some payload object inherits from DistStageAck and adds the data
* simplified all the error handling methods into error(String, Exception) and error(String)