Reland of "Move RtcEventLog object from inside VoiceEngine to Call.", "Fix to make the start/stop functions for the Rtc Eventlog non-virtual." and "Fix for RtcEventLog ObjC interface"

The breaking tests in Chromium have been temporarily disabled, they will be fixed and reenabled soon.

Original CLs: https://codereview.webrtc.org/1748403002/, https://codereview.webrtc.org/2107253002/ and https://codereview.webrtc.org/2106103003/.

TBR=solenberg@webrtc.org,tommi@webrtc.org,stefan@webrtc.org,terelius@webrtc.org,tkchin@webrtc.org
BUG=webrtc:4741, webrtc:5603, chromium:609749

Review-Url: https://codereview.webrtc.org/2110113003
Cr-Commit-Position: refs/heads/master@{#13379}
diff --git a/webrtc/api/peerconnection.h b/webrtc/api/peerconnection.h
index fc754b9..c4a9a60 100644
--- a/webrtc/api/peerconnection.h
+++ b/webrtc/api/peerconnection.h
@@ -136,6 +136,10 @@
 
   void RegisterUMAObserver(UMAObserver* observer) override;
 
+  bool StartRtcEventLog(rtc::PlatformFile file,
+                        int64_t max_size_bytes) override;
+  void StopRtcEventLog() override;
+
   void Close() override;
 
   // Virtual for unit tests.
@@ -360,6 +364,13 @@
   // is applied.
   bool ReconfigurePortAllocator_n(const RTCConfiguration& configuration);
 
+  // Starts recording an Rtc EventLog using the supplied platform file.
+  // This function should only be called from the worker thread.
+  bool StartRtcEventLog_w(rtc::PlatformFile file, int64_t max_size_bytes);
+  // Starts recording an Rtc EventLog using the supplied platform file.
+  // This function should only be called from the worker thread.
+  void StopRtcEventLog_w();
+
   // Storing the factory as a scoped reference pointer ensures that the memory
   // in the PeerConnectionFactoryImpl remains available as long as the
   // PeerConnection is running. It is passed to PeerConnection as a raw pointer.