Revamp the CI to use gitlab-ci-templates
This MR rewrites the .gitlab-ci.yml configuration to introduce some expansion of the testing
- utilise gitlab-ci-templates to simplify common operations
- build binary packages for multiple versions of RHEL/Debian
- measure code coverage during testing
- add
lint
jobs to examine code (and packaging configuration) quality