Runtime binding for metrics reporting using reflective instantiation

Also separate metrics reporting providers out into packages
Use a child injector
Merge pull request #11 from apurtell/metrics_reporting_runtime_binding

Runtime binding for metrics reporting using reflective instantiation