Make bouncer handedness animation interruptible.

This makes the bouncer motion interruptible. In general, the motion
looks "fine" when interrupting the bouncer, but the opacity was always
run from 100% -> 0% -> 100%, regardless of the initial state. This
change remembers the initial opacity for the fade out, so we don't get
as much jank when cancelling the animation.

This is fine when the bouncer is fading back in, but leads to a bit of
weirdness if you manage the interrupt the bouncer before it has fully
faded out (it still does the correct amount of travel, so it fires
off-screen, then comes back on again). Still, this is *extremely*
difficult to do; the user has to do two taps within 100ms to do this.

Demonstration videos:

Normal speed:
https://drive.google.com/file/d/1FRPysuA-eHNo_2nwMXnXKXwpBrJeS-we/view?usp=sharing&resourcekey=0-3-JzHRhvUJ9ciXClL6dOBQ
5x anim scale:
https://drive.google.com/file/d/16xr6VZ_KrLAs8sLCxrqAxaZsEQugi6UN/view?usp=sharing&resourcekey=0-5cPAHfX9Xy3_vDVEfP4Blg

Bug: 195012405
Test: Manually tested. See videos.
Change-Id: I42534f65b2669c5da4cadaaaf8a25409edd260c6
1 file changed