Telephony: Introduce DataProfile base class

DataProfile is a base class from which we derive ApnSetting.
This can be extended for other classes of DataProfiles.

Change-Id: I34f78ac22c82446bb74f538899d637656e0134ca

Conflicts:
	src/java/com/android/internal/telephony/dataconnection/ApnContext.java
	src/java/com/android/internal/telephony/dataconnection/DcTracker.java
Telephony: Enable OMH support in Android Telephony

Support the Open Mobile Handset initative in android telephony. As per
the OMH specification in 3GPP2, Data profiles defined for specific
services like LBS, TETHERED and UNSPECIFIED are defined in the
RUIM/CSIM cards. These profiles are read from the android telephony
and used for creating the data calls when the right radio technology
(CDMA/DO) is used and when the feature is enabled.

* Supports multiple profiles for a particular OMH service type

* Supports multiple OMH profiles with same priority

* In case of OMH, for all profiles supporting SUPL, arbitration
should choose the lowest priority profile when making data calls

* This feature supports the co-existance of other radio technologies in
an OMH enabled device. Even with the OMH feature enabled, the device
can operate with default profiles when OMH profiles are not (yet)
present.

* Use PROFILE_TYPE_CDMA if no suitable PROFILE_TYPE_OMH available

Change-Id: I36adadfa5be42328fc3cb240626589ddde5fdb26

Conflicts:
	src/java/com/android/internal/telephony/CommandsInterface.java
	src/java/com/android/internal/telephony/RIL.java
	src/java/com/android/internal/telephony/cdma/CDMAPhone.java
	src/java/com/android/internal/telephony/dataconnection/DcTracker.java
	src/java/com/android/internal/telephony/test/SimulatedCommands.java
fix build errors after caf updates.

Change-Id: I6b66ac22b5d01d12ffe6dca91a7da910501aa11e
Telephony: add property to control the data on sub2 MMS only

When the property is true, restrict the APN of sub2 only available for MMS

Change-Id: I80aca0ae4a1aa4db0e52e049f9fd73e7a5ceff2c
 Update Messenger object based on current DDS.

 During initialization the AsyncChannel object in MobileDataStateTracker
 gets overwritten for slot-1 and after that it never gets udpated for
 slot-0. This change takes care to update the AsyncChannel object
 dynamically based on current DDS. In DcTracker class we are moving the
 supplyMessenger functionality to a protected function. In MSimDcTracker
 class we are overriding the function and invoking based on current active
 subscription at bootup and whenever the DDS changes.

Change-Id: Iea8964eb25b696a780c52d71a8ce9081e9d08ce4
Fix lte data call

In case of cdma+lte get 3gpp icc records
(cdma works with dummy data profiles and for lte we need 3gpp)

Change-Id: Ie7578eabd3deaae77895ca458e45236178f4b673

Conflicts:
	src/java/com/android/internal/telephony/dataconnection/DcTracker.java
Create cdma profiles if none are found in database

Change-Id: I0cf0debb703f6a4cad35300315922a5566871f85
CRs-Fixed: 501098
Fix 1x/evdo data call for NV based subscription.

NV based CDMA subscription was not handled properly in
DcTracker and data calls were not initiated since it was
waiting for sim loaded event.Changed the code to allow data
calls even without loading SIM ,if CDMA subscription is NV
based.
Also for 1x/evdo data calls with non OMH cards, changed the
code to use dummy APN profiles instead of the APNs loaded
based on SIM.
Dummy APN profiles will be created based on the current DATA
radio technology so that they wont be used for GSM/UMTS/LTE
and eHRPD.

CRs-fixed: 518900, 517763
Change-Id: I815d2110d469b646c7f5905f5bfc6fd14e6251b7

Conflicts:
	src/java/com/android/internal/telephony/Phone.java
	src/java/com/android/internal/telephony/dataconnection/DcTracker.java
Fix npe in DcTracker

When dummy data profiles are created don't use null
operator because otherwise it will cause npe later.

Change-Id: If2e9600b0a3e10259f90d13eb294b5e03cbec3b5
CRs-Fixed: 526909
fix more build errors.

Change-Id: I825df539c617a4183b31b4936c99727bab4c7def