Updated how metrics are recorded and used.

In preparation for allowing more control over what metrics are
displayed, and saw the need to allow count/value to be recorded at the
same time. Also frees us to allow new metrics to be defined or built
from core data.