Speculatively launch Service Workers on mouse/touch events. [4/5]

1/5: Introduce NavigationHintSender.
     https://codereview.chromium.org/2043863003/
2/5: Pipe NavigationHints from NavigationHintSender to ChromeRenderMessageFilter
     https://codereview.chromium.org/2043083002/
3/5: Call StartServiceWorkerForNavigationHint() from ChromeRenderMessageFilter
     https://codereview.chromium.org/2052613003/
4/5: Measure the precision of the speculative launch of Service Workers for
NavigationHints
     This CL.
5/5: Add flags to enable SupeculativeLaunchServiceWorker
     https://codereview.chromium.org/2053573002/

This CL introduces "ServiceWorker.NavigationHintPrecision" UMA to measure the
precision of the speculative launch of Service Workers for navigation hints.
It is recorded when the speculatively launched worker is stopped.
If there was no event fetched to the worker, this value is false.
This means that the speculative launch was meaningless.

BUG=616502

Review-Url: https://codereview.chromium.org/2045153003
Cr-Commit-Position: refs/heads/master@{#409436}
6 files changed