docker image support as artifacts

What does this MR do?

This MR it's the first step toward implementing Automate push/pull of docker image artifacts.

Please see the companion MR on gitlab-ce!11989

This patch pushes a docker image to gitlab if the artifacts configuration has the key image.

In order to avoid image collisions, the artifact image is named $registry_url:$user/$project/pipeline:$build_id

Next steps

  • failing the build if can't push the image (maybe)
  • more steps at gitlab-ce!11989

cc: @ayufan @markpundsack

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?