Reland set of Touch Bar text suggestions perf improvements and bug fixes.

This change is similar to the original (below) with the following additions:

- Skip requesting suggestions (and clear the candidate list) if the selection
  range is invalid. This caused crashes in the field: https://crbug.com/893038.
- Skip requesting suggestions if the candidate list is collapsed.
- Request suggestions immediately when the candidate list is shown.

This relands commit d7c191591846d2138feeaa27d29db322a4cd0fe.

Original change's description:
> Fix bugs and improve perf in Touch Bar text suggestions.
>
> - The old implementation recreated the Touch Bar on each keystroke (including
>   when hidden, I believe), which burns a significant amount of power while
>   typing. This new implementation updates the existing candidate list, if it
>   exists and isn't collapsed.
>
> - Removes a bunch of support code for a behavior that was disabled in r590669.
>   It moves the remaining code into RWHV itself instead of a dedicated
>   controller class, which I have mixed feelings about, but ultimately picked
>   because after the support code was removed, most of what was left was
>   plumbing between RWHV and TextSuggestionsTouchBarController.
>
> - [Bigish change] Moves text suggestions out of the window and into the RWHV,
>   so that hiding and showing as focus and web contents change is left to AppKit
>   and the responder chain.
>
> - Fixes small lifecyle-ish bugs around when use this kind of Touch Bar — now
>   it's tied to the RWHV's input type instead of using a special
>   WebContentsTextObserver.
>
> Bug: 717553, 881545
> Change-Id: I8e1eff6da7918f92cfdb47465196d5841a88a7e4
> Reviewed-on: https://chromium-review.googlesource.com/c/1212004
> Commit-Queue: Sidney San Martín <sdy@chromium.org>
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#597371}

Bug: 717553, 881545, 893222, 893038
Change-Id: I2f8405f9784514462c2bfe8a754d3ca174f47d27
Reviewed-on: https://chromium-review.googlesource.com/c/1299664
Commit-Queue: Sidney San Martín <sdy@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603741}
28 files changed