DO NOT MERGE Prevent back navigation not working after activity re-created

When recreating the Activity, if the window is preserved, we would set
the actual dispatcher from the preserved window to the new Activiy's
proxy dispatcher, and expect the new callback could be re-registered
in the recreating flow.

This CL clears the old callbacks of the preserved dispatcher before it
attach to the new proxy dispatcher, this could prevent it access the
wrong top callback after other new callbacks have been unregistered.

Also provide dump log for WindowOnBackInvokedDispatcher.

Bug: 259500250
Test: atest BackNavigationTests
Change-Id: Idc9a6a95f5669a009762570d7bc9acc2c538e4cb
5 files changed