Use the ID to create the InsetsSourceProvider

We still use the internal insets type as the ID for now. But when
InsetsFrameProvider have enough information for us to create the ID, we
will be ready to switch to it, and then we can remove all the internal
insets types.

This CL also refines the life cycle of InsetsSources and
InsetsSourceProviders. When an insets hosting window is removed, the
sources and the providers provided by it will be removed as well.

Bug: 234093736
Test: atest ActivityRecordTests DisplayPolicyLayoutTests
            InsetsStateControllerTest WindowStateTests WindowTokenTests
Change-Id: I72f42e128b2a15bc2522b8be874487504eb8a178
13 files changed