Remove some hard-coded fullscreen-specific hierarchy logic

There were a couple issues where evaluation was hard-coded:
1. detecting window movement was always relative to the display.
   Because animations are moving to be more "leashed", this
   detection method can cause double-animations.
2. The Task-level configuration resolution was hard-coded to
   assume that null-bounds would inherit from the display. This
   breaks down when we try to influence parent configs (eg.
   Stack or, in the future, parent Tasks) and causes the app
   to receive configs that don't match its window size.

For (1) this CL changes WindowState to only animation movement
if the windows have moved relative to the root-windowstate's
parent. This works because movements above Activity-level
are done by WM and have animations already (eg. transitions
or task-org leashes) while movements below activity-level
are triggered by app (eg. relayout) and don't have intrinsic
animations.

For (2) this CL adjusts the task-level resolution to always
calculate relative to its parent, even with null bounds.

Bug: 133381692
Bug: 133381284
Test: Added to TaskRecordTests and updated WindowFrameTests
Change-Id: I172ca65465bbfdfe5e2022c5a4bfb6b6f0140b24
8 files changed