Make main frame navigations consume a user gesture

The tactical purpose of this patch is to constrain tab-unders [1] so
that they are forced to open a popup *before* navigating. This
constraint allows us to do more aggressive interventions in the future,
because pages that do a successful tab-under after this patch will
1. Be forced to navigate after opening a popup (and can be tagged as
   a popup-opening page)
2. Be forced to navigate without a user gesture (since popups consume
   a gesture).

We may be able to intervene on navigations which satisfy (1) and (2) in
the future.

You can see the effects of this patch by loading:
http://cr.kungfoo.net/popups/tab_under/

If you choose "Navigate and then Popup", the popup will be blocked.

Note: This feature is launched behind a disabled-by-default feature
flag. It is currently going through the intent to ship process on blink
dev [2]. It should not be enabled until LG from API owners.

[1]: A tab-under is when a page opens a popup to a link target, while
     also navigating the original page to an ad.

[2]: https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/kPli8ZCUeok

Bug: 772515
Change-Id: Id45d0b85aa55b0eb5a85bcaecc4ca3f9e551796e
Reviewed-on: https://chromium-review.googlesource.com/676656
Commit-Queue: Charlie Harrison <[email protected]>
Reviewed-by: Philip Jägenstedt <[email protected]>
Reviewed-by: Camille Lamy <[email protected]>
Cr-Commit-Position: refs/heads/master@{#514035}
5 files changed