Reapply "Correct opacitiy for drag move indicator"

This reapplies Ibe86db0aaa6ab20ac76a27f8db9dbf09c524ffd3.

When dragging a task between displays, the original task surface is
moved off-screen, and a mirrored surface is used as the drag indicator.
This is necessary because a mirrored surface cannot have a higher alpha
value than its source, and this approach allows for independent opacity
control of the indicators on different displays.

The key difference in this re-applied version is that the new behavior
is controlled by the feature flag ENABLE_WINDOW_DROP_SMOOTH_TRANSITION,
and will be merged with the change that defers drag indicator removal
until the window drop transition ends. Together, they should create a
smooth and seamless window drop experience.

Flag: com.android.window.flags.enable_window_drop_smooth_transition
Bug: 398992368
Test: manual and atest
Change-Id: Ic57fbd033fdbbd7a0b6394f467247ea2c053f61f
4 files changed