Bug 982663: collect and transmit app usage metrics

Doing two sequential async calls with two different locks doesn't seem worth it just for the convenience of having the info structure. I'd make a single getSettings() call and build the device info structure manually.  But not really a big deal.