Keep runtime insets types during layout

Previously, we only keep the information of the relative position with
IME window during the layout process. That worked because navigation bar
is always at the top. To support more flexible insets layout and the
solve issues where upper window received insets from lower window, we
keep the runtime insets instead.

When calculating the insets for a target window, we only count the
insets types above the window when needed.

Test: atest DisplayPolicyLayoutTests
Test: atest InsetsStateControllerTest
Test: atest InsetsPolicyTest
Test: go/wm-smoke
Bug: 171559950
Bug: 161689946
Bug: 169329927
Bug: 172289399
Change-Id: I891f10d85ce4fc3e28e9757d0c4f4def6f5d1586
10 files changed