IMS SRVCC handling and call log cleanup.

1. Added TelephonyConnectionListener instance to ImsConference to capture
onOriginalConnectionConfigured events.  When SRVCC happens, the original
connection on the conference host TelephonyConnection is changed to a
GsmConnection; this triggers the onOriginalConnectionConfigured callback.
In response, we add the conference host connection to Telecom (as it is
not already in telecom) and unlink it from the ImsConference.  At this
point the ImsConference is disconnected, leaving just the
TelephonyConnection with the new GsmConnection active.
2. Since in (1) we are unlinking the mConferenceHost, added null checks to
ensure that any other calls to conference methods during SRVCC don't cause
a NPE.
3. In ImsConferenceController when the new conference is being created,
we disconnect the original foreground TelephonyConnection and move its
radio connection to be a new TelephonyConnection which is the ImsConference
host.  When the original foreground connection is disconnected, changed
the disconnect cause to "OTHER" to ensure that the call is logged to the
call log, and no disconnect tone is heard.

Bug: 18433280
Bug: 18323703
Change-Id: I77a57d895e43c81e14b012409e2de0be7eeb48db
2 files changed