Refactor task change notification logic into a separate class
TaskChangeNotificationController.
Add ActivityManagerService.unregisterTaskStackChangedListener
Add a no-op implementation that clients can subclass to avoid
having to reimplement all new methods when they are added.
Add new methods:
onTaskAdded
onTaskRemoved
onTaskMovedToFront
onTaskDescriptionChanged
onActivityRequestedOrientationChanged
onTaskFinishing
Design doc:
https://docs.google.com/document/d/1IgWZ44rKe9k1CzkjP2Mohv12OgRD1FxH8oLAyzhvCY4/edit#heading=h.yhzl6os0dbo5
Cherry-picked from I8302d6d3baf1ac1ca928765fe203091b9fab4070
Bug: 32277482
Test: Verify that callbacks are called in dummy implementations
Change-Id: I2ac2b870147ef049f3ee05fc5916c99332334526