Resize only the virtual viewport when the OSK triggers a resize.

Initial CL in unifying the keyboard behavior between ChromeOS and Android.
If the enable-osk-overscroll flag is set, this change will keep the Blink
viewport size stable and set the visible_viewport_size to the smaller value.

This CL adds a new View (InsetObserverView) to the View hierarchy that will
store the value of insets (OSK, status bar). When there is a resize due to
OSK show, we keep the view bounds the same and change the visible viewport
size.

Design doc: http://go/osk-unification

BUG=404315

Review URL: https://codereview.chromium.org/1386403003

Cr-Commit-Position: refs/heads/master@{#381590}
16 files changed