Refactor CI pipeline
- Reduces some repeats in the code by defining rule templates we can re-use across jobs
- Moves the files under .gitlab/ci/ and updates the naming to match our other projects
- Adds needs: definitions, which allows to jobs to be started immediately after their dependencies were done (and not wait for the whole stage to be finished first).
Edited by Darby Frey