Decouple recents view from window while swiping up

Add setRecentsAttachedToWindow(boolean attached, boolean animate) with
the following conditions:

Conditions for attached
- Motion is paused and shelf is peeking
- xDisplacement > yDisplacement (to ensure seamless quick switch)
- We are continuing the previous quick switch gesture
- Gesture has ended and endTarget is RECENTS or NEW_TASK

Conditions for animate
- Recents is visible. Since the running task is invisible, this is
  true if either an adjacent TaskView is visible, or if we’re
  continuing the previous gesture

Currently the attach/detatch animation is just fading recents in/out.

Test:
- Swipe up to go home does not show the recents list at all. Instead,
  all the visuals/motion focus on the app window animating into the
  home screen.
- Recents appears when swiping and holding, to indicate that letting
  go will land in recents. The shelf also appears with haptic feedback
  in this case to reinforce this.
- The next task is immediately visible when quick switching (swiping
  left to right on the nav bar).

Bug: 129985827
Change-Id: Ib0c16f583bfd5b02d2f9f68c9688edc980a39d75
4 files changed