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
Next iteration (can be after this is deployed), let's build a simple caching layer in here so that we can keep the package details in memory -- the full result of any query to the database really.  So even the non-existence of a package could be cached.  The cache could live for an hour or more pretty safely.