Replacing DtlsIdentityStoreInterface with RTCCertificateGeneratorInterface.

The store was used in WebRtcSessionDescriptionFactory to generate certificates,
now a generator is used instead (new API). PeerConnection[Factory][Interface],
and WebRtcSession are updated to pass generators all the way down to the
WebRtcSessionDescriptionFactory instead of stores.

The webrtc implementation of a generator, RTCCertificateGenerator, is used as
the default generator (peerconnectionfactory.cc:189) instead of the webrtc
implementation of a store, DtlsIdentityStoreImpl.
  The generator is fully parameterized and does not generate RSA-1024 unless you
ask for it (which makes sense not to do beforehand since ECDSA is now default).
The store was not fully parameterized (known filed bug).

The "top" layer, PeerConnectionFactoryInterface::CreatePeerConnection, is
updated to take a generator instead of a store. But as to not break Chromium,
the old function signature taking a store is kept. It is implemented to invoke
the generator version by wrapping the store in an
RTCCertificateGeneratorStoreWrapper. As soon as Chromium is updated to use the
new function signature we can remove the old CreatePeerConnection.
  Due to having multiple CreatePeerConnection signatures, some calling places
are updated to resolve the ambiguity introduced.

BUG=webrtc:5707, webrtc:5708
R=phoglund@webrtc.org, tommi@webrtc.org
TBR=tkchin@webrc.org

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

Cr-Original-Commit-Position: refs/heads/master@{#12947}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: 400781a2091d09a725b32c6953247036b22478e8
diff --git a/app/webrtc/objc/RTCPeerConnection.mm b/app/webrtc/objc/RTCPeerConnection.mm
index da092c8..6ec7edc 100644
--- a/app/webrtc/objc/RTCPeerConnection.mm
+++ b/app/webrtc/objc/RTCPeerConnection.mm
@@ -279,7 +279,11 @@
     config.servers = iceServers;
     _observer.reset(new webrtc::RTCPeerConnectionObserver(self));
     _peerConnection = factory->CreatePeerConnection(
-        config, constraints, nullptr, nullptr, _observer.get());
+        config,
+        constraints,
+        nullptr,
+        std::unique_ptr<rtc::RTCCertificateGeneratorInterface>(),
+        _observer.get());
     _localStreams = [[NSMutableArray alloc] init];
   }
   return self;
@@ -293,7 +297,12 @@
   if (self = [super init]) {
     _observer.reset(new webrtc::RTCPeerConnectionObserver(self));
     _peerConnection =
-        factory->CreatePeerConnection(config, constraints, nullptr, nullptr, _observer.get());
+        factory->CreatePeerConnection(
+            config,
+            constraints,
+            nullptr,
+            std::unique_ptr<rtc::RTCCertificateGeneratorInterface>(),
+            _observer.get());
     _localStreams = [[NSMutableArray alloc] init];
     _delegate = delegate;
   }