Add ImeTargetChangeListener for IME targets visibility

In order to stablize the IME surface z-ordering use cases from IMMS
side, as IMMS knows the true IME input target availability but lacks
of knowing visibility once the input target removed by itself turns
out unable to hide IME if the next IME layering target on top. Or,
unable to track non-focusable IME layering target visibility
caused IME surface being jumped up-and-down during the IME transition.

In this CL, we added ImeTargetChangeListener for IMMS side
(specifically is ImeVisibilityStateComputer) to track the IME
input target and non-focusable IME layering overlay window visiblity:

    - onImeTargetOverlayVisibilityChanged
    - onImeInputTargetVisibilityChanged

As this CL is the first-step of providing visibility tracking infra to
ImeVisibilityStateComputer, We will submit follow-up CL with using this
callback for fixing related IME layering issues.

Bug: 258048231
Test: atest WindowStateTests
Change-Id: I90c59c298e2e4568e308fb2c0dc4ca309d5546a3
7 files changed