ws: Queue input events on delivery, not dispatch.

Queue additional events generated by EventRewriters, as needed.
Refactor EventQueue to operate later, closer to EventSink delivery.

Eliminate HostEventQueue and [Test]HostEventDispatcher.
Use Shell via WSDelegate for EventInjector's display -> host lookup.

Update tests and setup code; add a queue unit test for host destruction.
Move content_browsertests' aura::TestScreen ownership to WMTestHelper.

TODO: Remove WindowTreeHost::event_sink(), use GetEventSink().

Alternate WIP sticky keys DCHECK workaround: https://crrev.com/c/1371878

Bug: 913549
Test: No SingleProcessMash sticky keys DCHECK, no input regressions.
Change-Id: I61d67af94fad0ed8414a7945160a7c231dca47a1
Reviewed-on: https://chromium-review.googlesource.com/c/1372629
Commit-Queue: Michael Wasserman <msw@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616930}
37 files changed