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.
Remind me: who decides the time of the metric batch? The agent that sends it or the state server that puts it into state?

I guess it doesn't matter, we'll always be sending all unsent metrics, and never be deleting unsent ones, so it's really just an annotation. Nothing really needs to change here in particular, I think.