Finish separating metrics reporting from implementation.

Help differentiate the agent code from the barn-monitor app code and also
allow plugging in other telemetry implementations at some future point.