Daravind/Catalog metrics storage

CatalogMetricsStorage

1) Added support to Metrics Service to store metrics in a Catalog
2) CatalogMetricsStorage only writes to Catalog from 1 (background) thread by using a ConcurrentQueue
3) Also, using 'ShouldUseDBAndCatalog' setting, metrics may be written both to DB and Catalog
4) Following settings are supported as well
     i) IsLocalCatalog - uses filesystem
     ii) CatalogPageSize and CatalogItemPackageStatsCount to determine how the Catalog is built
We need to make this name/value pair properties rather than an array of strings.  And we should fetch out of the reader using the column name instead of the ordinal as well.  OR you can comment what the ordinal means (even a const is cool) but also add a comment on the SQL query that ordinality matters.