more tweaks: pipeline_name contains rel_with_suffix, EHIVE_USER/EHIVE_PASS are still checked first, schema_version not duplicated
cosmetic: docs formatting
Switched to our internal implementation of throw() via Carp::confess. It is also available to Runnables as $self->throw( $msg );