[DO NOT MERGE] DisplayImeController: fix out-of-sync IME visibility

This change is based on CL[1] in rvc-qpr-dev code base.

Note: This cherry-picked change isn't completely same as master one,
it add a method "getImeRequestedVisibility" in InsetsControlTarget
since "getRequestedVisibility" didn't exist in rvc-qpr currently.

Fixes an issue where the DisplayImeController would disagree with
the InputMethodManagerService about the visibility of the IME.

Currently, the Insets component is supposed to execute the
visibility as dictated by IMMS; however, when the DisplayImeController
became the control target, previously it would just apply the IME
visibility that was last requested of it - regardless of the
changes to it that may have happened while it was not the control
target.

Eventually, IME visibility should be driven by the requested IME
inset visibility of the focused window, instead of the separate
dispatch we have now from IMMS.

[1]:I1f140af6bcccbcbe6efb2fde9a789ac4c7bd127f

Bug: 167780081
Test: atest ImeInsetsSourceProviderTest
Change-Id: I3962f3aa26d9325d7d8a4611f13a637d46337fef
8 files changed