Route Emulated Touch Events for OOPIFs

This CL makes TouchEmulator work for OOPIFs by

1) Instantiating a single TouchEmulator for all views,

2) Moving ownership of the single TouchEmulator to
   RenderWidgetHostInputEventRouter (RWHIER), and

3) Routing the subsequent touch/gesture events through
   the input event router.

The last item is important so that scroll bubbling from
OOPIFs to parent views will work properly. It's important
to note that emulated touch events are *always* routed to
the same view that originally received the mouse event
that is being converted into a touch event. But GestureEvent
targetting will now follow the usual rules enforced by
RWHIER.

A core component of this CL involves having RWHIER implement
TouchEmulatorClient, so that it can mediate actions among
multiple views without the TouchEmulator needing to be aware
of their existence.

Ideally we would like the single TouchEmulator to use
the same GestureProvider as the root view, but since touch
emulation requires custom configuration of the GestureProvider,
and since (at present) GestureProvider does not allow most
configuration parameters to change after instantiation,
having a single GestureProvider will have to wait.

Bug: 824772
Change-Id: I1c007631e08fd7f4ece8accb896cad9bc4982f97
Reviewed-on: https://chromium-review.googlesource.com/1069661
Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Commit-Queue: James MacLean <wjmaclean@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566103}
15 files changed