Enable support for multiple SMSDispatchers in CDMALTEPhone.

Refactor framework to support multiple SMSDispatcher objects on
dual-mode devices that require support for both 3GPP and 3GPP2
format SMS messages. Each dispatcher registers to receive events for
the appropriate message format.

Note: All applications which handle incoming SMS messages by processing the
SMS_RECEIVED_ACTION broadcast intent MUST pass the "format" extra from the intent
into the new createPdu() method in android.telephony.SmsMessage that takes an
extra format parameter. This is required in order to correctly decode the PDU on
devices which require support for both 3GPP and 3GPP2 formats at the same time,
such as CDMA/LTE devices and GSM/CDMA world phones.

 - moved code to manage device storage events from SMSDispatcher to a
   new class, SmsStorageMonitor, which is shared among all dispatchers.

 - moved code to monitor per-application outgoing SMS usage from
   SMSDispatcher.SmsCounter to a new class, SmsUsageMonitor, which
   is shared among all dispatchers.

 - fixed a bug that prevented CDMALTEPhone from setting the MCC/MNC
   operator numeric value in the telephony provider from the UICC,
   as GSMPhone does, when the SIM records have loaded.

Change-Id: I2789ac07b6ca2948138bca7f75481f9b31514f20
22 files changed