WIP: Refactor docker executor

Open Kamil Trzcińśki requested to merge refactor-docker-executor into master

This refactors docker executor in:

What does this MR do?

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 to https://gitlab.com/gitlab-org/gitlab-ci-multi-runner/issues/2347