Bug 982663: collect and report app usage data

This patch does not have tests yet, and is still missing a couple of features, but it has working code and is ready for feedback and preliminary review.
Be careful on `navigator.addIdleObserver`. This might not be the signal you want to catch. Read `idletimer.js` to see what's the catch.