Implemented a cleanup worker for deleting metrics

There are 3 main changes in this pr:

1) Added a cleanup metrics and delete functions to state to allow metrics to be deleted
2) Added an API endpoint for calling the CleanupMetrics function
3) Added a worker that will periodically call the cleanupmetric function

The worker never gets called - except in tests - that will come in a follow up pr.
The CleanupMetrics function currently just returns an error. In a follow up it will return a list of the uuids that were deleted.
I get nervous about using types with a whole bunch of fields that, ehh, we just don't bother to fill in. Isn't there an explicit idDoc somewhere?

But, more pertinently... does anything reference these docs? This is an awful lot of work to just delete them, and I don't think we need to either watch for deletions *or* worry about informing other components of lost references. Can we just do a .Delete()?