Updating Overview to work with PiP

- Ensure that an activity that is auto-entering PiP when hitting Overview
  does not show up in Overview. This is done by listening for the
  onActivityPinned() callback from the system, and remove the pinned task.
- Ensure that we show the PiP task in Overview after it is dismissed, while
  Overview is open. This is done by listening for the onActivityUnpinned()
  callback from the system and refreshing the task list similar to when
  the multi-window mode changes.
- When launching from a PiP activity, or launching back into Overview where
  the next task should be PiP, then ensure that we scroll the stack to the
  front so that the first task is fully visible.
- Fix two lingering Overview issues, when there are no handlers (ie. with
  dynamically registered handlers), ensure that we call pre/post dispatch
  callbacks (otherwise it could cause animated events not to work correctly).
  Also, ensure that we don't update the dummy stack view TaskStack without
  clearing the stack first, since we may be modifying the same stack
  that the activity consumed when starting.

Bug: 34185886
Bug: 38207296
Test: Launch PIP activity from hitting Overview in the various ways
      described above
Change-Id: I699e655106e6ed7206e163f9d3c15477bbfd52ef
22 files changed