gitlab-ci: rework pipeline to support on-demand bundle publishing
This works with !940 (merged) to help reduce the load on cloud storage services for CMB's usage. To that end it:
- gates the upload portions of the CI bundle (or image) upload steps on the
ENABLE_CI_BUNDLE_UPLOADvariable to be set in manual pipeline runs - selecting a specific project may be done with the
ENABLE_PROJECTSvariable to a comma-separated list of projects to run
Additionally, it reworks the rules for jobs to share a single block that all jobs can share but configure using CMB_CI_* variables on the jobs themselves. See .gitlab/rules.yml for documentation on the job variables that affect things. It also uses workflow:rules to help avoid extra work on master jobs.