Fix some split-screen IME glitches

First of all, this fixes some ime reporting issues. Specifically,
the ime state could be updated without a queued traversal which
would cause some messages to get lost.

Second, this has the Divider switch to "async" animation when
stack adjustment is no longer aligned with IME animation. This
happens when switching ime focus from one split to the other.

Additionally, I had to change the ime animations to remember
where they were before "switching directions" because it turns
out the insets logic varies when focus changes: sometimes you
get only a show() other times you get a hide() followed
immediately by a show()

Bug: 133381284
Bug: 149952263
Bug: 150702357
Test: manually open split-screen with editors in each split
      and try switching between them.
Change-Id: I8c92ce4e74651f08ef84d4f1c4b2ddb9625123f1
5 files changed