Fix the retry logic

1. During retry, if query start is triggered by internet connection, it is ignored and retries continue.
2. The retry count is reset only when 'rebooting' or 'turning airplane mode on and off' or 'query start is triggered by after refresh time' or 'SIM removed or changed'.
3. If internet connection is disconnected and connected during retry, the retry count is maintained.
4. The following conditions are checked before starting retry query:
   - Carrier config support satellite entitlement
   - Internet connection
   - Comparing the last query time from the refresh time value in the carrier config.
   - Retry count
5. The following conditions are checked before query start:
   - Carrier config support satellite entitlement
   - Internet connection
   - Query in progress
   - Comparing the last query time from the refresh time value in the carrier config.
   - Retry count
6. Lock for the subId based objects.
7. Retries continue even if one connection is disconnected while both data and Wi-Fi are connected.
8. Consider scenarios where '503 with retry-after' and 'ExponentialBackoff' cases can alternate.
9. With the SATELLITE_COMMUNICATION_RESTRICTION_REASON_ENTITLEMENT set, onSatelliteEntitlementStatusUpdated is called to remove the SATELLITE_COMMUNICATION_RESTRICTION_REASON_ENTITLEMENT after the KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL is change to false.
10. When SIM is removed, then reset the this subId's retry related objects.

Bug: 332971062
Bug: 333936749
Test: atest SatelliteEntitlementControllerTest
Test: manual test with entitlement test app b/332971062#comment3

Change-Id: I9ac45e3161a0538816e7a62f6374e3df21fbfd07
2 files changed