Added the API to create an RTCRtpSender to the Objective C wrapper.

Objective C applications can now create new RTCRtpSenders and change their tracks, which gives them more fine grained control than MediaStreams.

BUG=

Review-Url: https://codereview.webrtc.org/1888633002
Cr-Commit-Position: refs/heads/master@{#12570}
diff --git a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm
index e8fa4c9..46ea52a 100644
--- a/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm
+++ b/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm
@@ -311,6 +311,17 @@
   _peerConnection->SetRemoteDescription(observer, sdp.nativeDescription);
 }
 
+- (RTCRtpSender *)senderWithKind:(NSString *)kind
+                        streamId:(NSString *)streamId {
+  std::string nativeKind = [NSString stdStringForString:kind];
+  std::string nativeStreamId = [NSString stdStringForString:streamId];
+  rtc::scoped_refptr<webrtc::RtpSenderInterface> nativeSender(
+      _peerConnection->CreateSender(nativeKind, nativeStreamId));
+  return nativeSender ?
+      [[RTCRtpSender alloc] initWithNativeRtpSender:nativeSender]
+      : nil;
+}
+
 - (NSArray<RTCRtpSender *> *)senders {
   std::vector<rtc::scoped_refptr<webrtc::RtpSenderInterface>> nativeSenders(
       _peerConnection->GetSenders());