Bug 982663: collect and transmit app usage metrics

Note that if you make these properties of the Metrics object that you expose, then you can use symbolic constants in your tests and don't have the risk of simple string changes breaking your tests.