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

1/5: Introduce NavigationHintSender.
     https://codereview.chromium.org/2043863003/
2/5: Pipe NavigationHints from NavigationHintSender to ChromeRenderMessageFilter
     Thic CL.
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
     https://codereview.chromium.org/2045153003/
5/5: Add flags to enable SupeculativeLaunchServiceWorker
     https://codereview.chromium.org/2053573002/

NavigationHints are sent from NavigationHintSender to ChromeRenderMessageFilter.

NavigationHintSender::maybeSendNavigationHint()
-> sendNavigationHint()
-> WebPrescientNetworking::sendNavigationHint()
-> PrescientNetworkingDispatcher::sendNavigationHint()
-> IPC (NetworkHintsMsg_NavigationHint)

In the browser process, ChromeRenderMessageFilter receives the IPC message.

BUG=616502

Review-Url: https://codereview.chromium.org/2043083002
Cr-Commit-Position: refs/heads/master@{#407399}
12 files changed