Port/reconcile upgrade functionality to CE
## Problem
We have helm upgrade related functionality in EE so that Prometheus can add/update remove alerts. We will not have a good time when we develop upgrade of GitLab Managed apps in CE and have to reconcile the two.
## Proposal
Port the following from EE:
- [x] EE extension to `BaseHelmService`
- [x] EE extension to `Clusters::Applications::Prometheus`. Allow `#upgrade_command` to optionally replace values.
- [ ] Reconcile: `Prometheus#upgrade_command` and `Prometheus#install_command`
- [ ] Reconcile: `cluster_upgrade_app_worker.rb` and `cluster_update_app_worker.rb`
- [ ] `PrometheusUpdateService` minus `update_config` which is EE specific
- [ ] Reconcile: `CheckInstallationProgressService` and `CheckUpgradeProgressService`
- [ ] Reconcile `ClusterWaitForAppInstallationWorker` and `ClusterWaitForAppUpdateWorker`
The above are enabling the gitlab-ce~2278657 functionality of Prometheus alerting but are also generic type functionality which we will use to upgrade all GitLab Managed apps.
issue