Add a protocol property to the APNs and use it.

1. Database changes:
   - Add a protocol and a roaming_protocol column to the
     carriers table in the telephony provider database.
   - Set the protocol and roaming_protocol fields when
     creating APN objects from the database.

2. ApnSetting class changes:
   - Add protocol and roamingProtocol fields to the
     ApnSetting class that encapsulates APN settings within
     the framework.
   - Add the fields to ApnSetting.toString and support a new
     syntax containing the fields in ApnSetting.fromString.
   - Add a unit test for ApnSetting.

3. Telephony changes:
   - Specify the APN protocol when setting up a data call,
     using protocol when not roaming and roaming_protocol
     when roaming.

This change depends on #94983 in the telephony provider,
which adds the new column to the database schema on
upgrades.

Change-Id: Ic4e3f02e48f17990f657187b9919d265671f0138
6 files changed