Pass around the candidate removals events in IOS clients

When local candidates are removed, signal to RTCPeerConnection
and eventually send to the remote client.
When a candidate-removal message is received, notify the native PeerConnection.

BUG=
R=tkchin@webrtc.org

Review URL: https://codereview.webrtc.org/1972483002 .

Cr-Commit-Position: refs/heads/master@{#12852}
diff --git a/webrtc/examples/objc/AppRTCDemo/ARDSignalingMessage.h b/webrtc/examples/objc/AppRTCDemo/ARDSignalingMessage.h
index 18eafe2..e605172 100644
--- a/webrtc/examples/objc/AppRTCDemo/ARDSignalingMessage.h
+++ b/webrtc/examples/objc/AppRTCDemo/ARDSignalingMessage.h
@@ -15,6 +15,7 @@
 
 typedef enum {
   kARDSignalingMessageTypeCandidate,
+  kARDSignalingMessageTypeCandidateRemoval,
   kARDSignalingMessageTypeOffer,
   kARDSignalingMessageTypeAnswer,
   kARDSignalingMessageTypeBye,
@@ -37,6 +38,15 @@
 
 @end
 
+@interface ARDICECandidateRemovalMessage : ARDSignalingMessage
+
+@property(nonatomic, readonly) NSArray<RTCIceCandidate *> *candidates;
+
+- (instancetype)initWithRemovedCandidates:
+    (NSArray<RTCIceCandidate *> *)candidates;
+
+@end
+
 @interface ARDSessionDescriptionMessage : ARDSignalingMessage
 
 @property(nonatomic, readonly) RTCSessionDescription *sessionDescription;