Telecom fixes related to RoleManager

- fix setState method so you can't transition from ANSWERED to ACTIVE
state.  I found a case when running some of the CTS where this was
flaking because the CTS test runs quickly enough that it was possible for
some of the Telecom answer call code to try setting a call to answered
when the underlying CS has already set it active.  ANSWERED is the
intermediate state before it becomes active.
- factor access to RoleManager for getting dialer role into the
RoleManagerAdapter.
- add ability to set an override default dialer via command line for CTS
test purposes since the RoleManager is too trigger happy when switching
the default dialer.
- change DefaultDialerCache to always refresh default dialer cache when
queried; this is an interim step until we can get the RoleManager to tell
us when the role filler for Dialer is changed.

Test: Run the CTS tests over, and over, and over, and over....
Bug: 131065482
AOSP: infeasible for now; will refactor-cherry-pick into aosp but it'll be
messy.
Change-Id: Id42b6157c338dc0a96a7db0372a5bc2df3f4d2c7
(cherry picked from commit bb4b46ee8a2799b80e419f3660702ca8555e41a5)
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ff67d32..c8eee36 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -38,6 +38,7 @@
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
     <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
     <uses-permission android:name="android.permission.MANAGE_USERS" />
+    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
     <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
     <!-- Required to determine source of ongoing audio recordings. -->
     <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" />