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. 
I love seeing so much deleted code :)