Cleanup quick switch logic

- Remove mFinishingRecentsAnimationTaskId and related logic;
  track mLastStartedTaskId and mLastAppearedTaskTarget instead.
- Don't finish controller if new gesture is in progress, only
  finish it when the last started task appears (and invalidate
  the handler at that point).
- Remove onTaskAppeared() from GestureState, handle it directly
  in BaseSwipeHandler.
- When the end target animation finishes, possibly change the
  end target from LAST_TASK to NEW_TASK or vice versa,
  depending on the last appeared task.

Bug: 154814771
Bug: 154727089
Bug: 155609695
Bug: 154812078
Change-Id: I38669515d064a131361359087f502783d875ddde
8 files changed