Make ActivityStarter single use.

ActivityStarter currently handles interlaunch state (such as pending
activity launches and historical logging), but at the same time has
state dedicated to a single launch. This can be problematic as some
ActivityStarter code paths are re-entrant. Additionally, the starter
handles outside tasks like power hints and post launch processing.

This changelist introduces ActivityStartController which coordinates
activity launches and is now responsible for related tasks that fall
outside the activity start.

Bug: 64750076
Test: atest FrameworksServicesTests:ActivityStartControllerTests
Test: atest FrameworksServicesTests:ActivityStarterTests
Change-Id: I5ef33f27c196a6b37202edcabb02489f4e7aedb9
10 files changed