Execute steps for build as-is, without joining and splitting them

Merged Kamil Trzcińśki requested to merge execute-steps-as-is into master

What does this MR do?

Do not transform executed steps, as this is destructive operation, instead execute in a way as they are returned in array.

This allows us to support multiline commands easily, by forcing user to use this:

    - |
      bin/command my-multiline-command \
        --key=value \

Why was this MR needed?

Are there points in the code the reviewer needs to double check?

Does this MR meet the acceptance criteria?

  • Documentation created/updated
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Branch has no merge conflicts with master (if you do - rebase it please)

What are the relevant issue numbers?

Related https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/12680