Add an option for providing a custom prometheus.Registerer
NewHandlerFactory registers its metrics directly into the global registry for the Prometheus client library. This forces global state on applications that use the shared functionality from LabKit. Global state is discouraged as it makes testing difficult, the application code inflexible and more complex as it couples unrelated aspects of an application together.
This commit adds an option to provide a custom registerer where the factory will register metrics. This way the application has an option to avoid the global state of the default registry. It would be better to leave the metric registration up to the application entirely but I've opted to stick with the existing pattern here and provide an option that fits in the existing API.