Add CRL prober type to boulder-observer
This PR adds a new Prober type to boulder-observer that monitors CRL availability and publishes a few of its own metrics that enable monitoring of a few key CRL properties, namely:
obs_crl_this_updatethe Unix timestamp of the CRL's thisUpdate valueobs_crl_next_updatethe Unix timestamp of the CRL's nextUpdate valueobs_crl_revoked_cert_countthe number of certificates listed in the CRL
Configuration: Each defined CRL monitor takes a single configuration option, a URL that specifies the location of the CRL to monitor.
Metrics: The three CRL-specific metrics described above are only published at /metrics if at least one valid monitor is defined in the config.yml. The metrics have a single label url that is set to the URL configured for the monitor
Note: In order for the new CRL Prober to be able to publish its own metrics, the probers package now defines a global map that keeps track of any custom metrics created by Probers. These Prober-specific metrics are then registered during the call to ObsConf.MakeObserver(). This change could be leveraged in the future to add more specific reporting to other Probers. The logic behind Prober-specific metrics here is that it's probably better to define alert conditions via Prometheus alerting rules, rather than binary success/failure conditions on the boulder-observer side
Splitting this up into two different PRs. First PR is #6290, and a follow-up PR will come if/when that one is merged