docker-image: use artifacts to persist images

The docker-image ci job relies on docker to persist images so that they
can be used in different stages. This only works when all stages are
executed on the same host.

This prevents the use of multiple runners, as different jobs may be
executed on different runners.

To fix this, we can use the artifacts feature of gitlab. We use `docker
image save` to create a tar archive of the image, which is then
persisted by gitlab for following stages.
1 job for docker-image-use-artifacts in 19 seconds (queued for 2 seconds)
Status Job ID Name Coverage
passed #552