Move input surfaces into its own overlay in DisplayContent

Input surfaces, such as gesture monitors and handwriting windows, were
created and placed directly inside the DisplayContent's SurfaceControl.

In some cases, like when the display is recreated, the DisplayContent's
SurfaceControl changes, so the surfaces should be reparented to the new
SurfaceControl when that happens.

To do that, we create a new overlay layer in DisplayContent for input
surfaces, and place that between the display overlay and the a11y
overlay. That way, we can ensure that the input overlays are always
parented to the correct display in the hierarchy, even when the display
is recreated.

Bug: 295386214
Test: manual
Change-Id: Ia1e31e68dca20610b7cb704869ceb71bb49e753b
6 files changed