Support task fragment for back navigation while adjacent.

Extends the opening targets to two activities.
For supports TaskFragment when adjacent, the opening target can be two
activities, here are the extra scenarios:

1. Task switch. The opening task can contains two activities, so when
using launchBehind to draw the activities, there will need to set flag
for them. And there should no extra work when using task snapshot.

2. Activity switch.
- If the close activity is adjacent to another one, and that one is the
previous activity, no predict animation because we don't know what will
happen.
- If the close activity is adjacent to another one, but that one isn't
the previous activity, start cross-activity animation as usual.
- If there is only one close activity, but the previous activity is
adjacent to another one, the opening target should be two activities.
TODO: for Activity switch case, the windowless starting window might be
two activity snapshot, or one splash screen to occlude two activities.

Bug: 274997067
Bug: 290845371
Test: atest BackNavigationControllerTests BackGestureInvokedTest
Test: invoke back navigation to the TaskFragment when adjacent.

Change-Id: I23e8f0156d1ba92d0a000c16c6c8469865885349
7 files changed