Add oneshot support to metrics manager.

Currently metrics are too closely tied to their metrics manager and we need support for firing a once-off value for a metric in addition to the current polling mechanism.