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.
And don't return here either. The params in a bulk call are generally expected to be independent. If you've stored the error from one entity in the appropriate slot, there's no need to mark the whole call as failed by returning an error at the top level. (Not sure there's anything here that *can* fail the whole call, is there? Might not need an error return at all...)