Flexible Split: State manager

Adds SplitState, a class that manages the "state" of SplitLayout.

Bug: 349828130
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: Nothing changes when flag is off. Tested manually, it responds correct to split initiation, drag to split, launch adjacent, app pair launch, divider movement, quick switch, Overview dismiss, and other forms of split breaking.
Change-Id: I8d20b0c255eb94749509ef8e5fb8ca1303661373
16 files changed