This refactors our custom image building to utilize GitLab parallel jobs
with a matrix.
This makes it easier to parse what kind of matrix we are going to build
in our docker images. Furthermore instead of splitting the image name,
we can simply pull the versions of the tools from the environment
variables.
The ultimative reason: Dogfooding