Refine MetricsContainer and MetricsCollection interfaces.

* Gets rid of MetricsContainer
* Makes IMetric the common interface.

This will enable statsd and common metric ingestion handlers to share the same AsyncFunction processors (batch splitting and writing).

The only part I thought was really questionable was the `instanceof Metric` check added to IncomingMetricMetadataAnalyzer.  It made me think that MetricsCollection should be a generic, but that would have been more invasive.