Cleanup and remove call if ConnectionService crashes

Make sure that call is removed from CallsManager if its
ConnectionService crashes.

Verified fix with TestConnectionManager.

Bug: 18262469
Change-Id: Idae71186b6547cb5a4c89e273c779eef030a2952
diff --git a/src/com/android/server/telecom/CallsManager.java b/src/com/android/server/telecom/CallsManager.java
index 57b9e8e..79f0c42 100644
--- a/src/com/android/server/telecom/CallsManager.java
+++ b/src/com/android/server/telecom/CallsManager.java
@@ -845,7 +845,10 @@
         if (service != null) {
             for (Call call : mCalls) {
                 if (call.getConnectionService() == service) {
-                    markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR));
+                    if (call.getState() != CallState.DISCONNECTED) {
+                        markCallAsDisconnected(call, new DisconnectCause(DisconnectCause.ERROR));
+                    }
+                    markCallAsRemoved(call);
                 }
             }
         }