Propagate previous step error
- ensure that all the job runners will propagate the error from a previous step, if it's the case. This will help the users of the dataset viewer: they will see the original error (e.g.: the dataset is empty), instead of weird applications about steps

Also, refactor: remove special cases by making PreviousJobError a CustomError, as the other exceptions
Propagate previous step error: - ensure that all the job runners will propagate the error from a previous step, if it's the case. This will help the users of the dataset viewer: they will see the original error (e.g.: the dataset is empty), instead of weird applications about steps

Also, refactor: remove special cases by making PreviousJobError a CustomError, as the other exceptions