Cloud metrics support in request_func

Implements #810
- Added support for cloud metrics ingest service in `get_request_func` 
- Using request function to add to cloud metrics. This has couple of advantages: 
   - the code is effectful making it purer and easier to test. 
   - it does not contain distracting auth stuff 
   - the tenant is authenticated only once and token is reused until it expires. 
- Setting service name defaults in `get_service_mapping` instead of each `Service` setting it. So, removed "cloudServersOpenStack" from metrics.py but cannot remove it from tap/api.py as unfortunately these configs are used by worker

This needs to be deployed after adding tenant_id in metrics config file. Will open a PR for that soon. 
this new namespace is slightly surprising to me. I would perhaps expect something like

'services': {...}

but I guess the most surprising thing is to keep them inconsistent.

Oh, and is it important to keep the different otter processes in different namespaces? why wouldn't all otter processes want to use the same service mapping?