Reintroduce CARRIER_CONFIG_CHANGED to handle config changes properly

1) When CARRIER_CONFIG_CHANGED is sent, ensure that the ImsPhoneCallTracker
receives and applies those indications, even when it does not result in
an ImsService change.

2) Receive CARRIER_CONFIG_CHANGED and process it as a proxy for the
condition where the SIM has moved from locked -> unlocked, since
this indication is sent as part of this process.

This is done by tracking the subId the ImsService is attached for.
If the carrier config changes for the subId that we are attached
for, apply the carrier config right away. In cases where we are
in the proess of moving subIds, the phone may be ahead of the
binding to the ImsService, so cache the carrier config
indication so it can be applied when the new ImsService is
attached for the subId. In the case were we are moving to a
no-SIM or locked SIM scenario, ensure carrier configs are applied
locally but do not apply them to the ImsService until we move
to the SIM READY state.

Bug: 167996816
Test: atest FrameworksTelephonyTests:ImsPhoneCallTrackerTest
Merged-In: I18caf795f3dde4c489fa19ac302d8e22d33783ea
Change-Id: I18caf795f3dde4c489fa19ac302d8e22d33783ea
2 files changed