Bug 982663: collect and transmit app usage metrics

Also, you should be initializing these in the constructor, not setting them on the prototype. And you can use reset() and resetData() to initalize them.