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/modules/bitrate_controller/bitrate_controller_impl.cc b/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
index c99bd53..8a2464d 100644
--- a/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
+++ b/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
@@ -79,20 +79,25 @@
 
 BitrateController* BitrateController::CreateBitrateController(
     Clock* clock,
-    BitrateObserver* observer) {
-  return new BitrateControllerImpl(clock, observer);
+    BitrateObserver* observer,
+    RtcEventLog* event_log) {
+  return new BitrateControllerImpl(clock, observer, event_log);
 }
 
-BitrateController* BitrateController::CreateBitrateController(Clock* clock) {
-  return new BitrateControllerImpl(clock, nullptr);
+BitrateController* BitrateController::CreateBitrateController(
+    Clock* clock,
+    RtcEventLog* event_log) {
+  return CreateBitrateController(clock, nullptr, event_log);
 }
 
 BitrateControllerImpl::BitrateControllerImpl(Clock* clock,
-                                             BitrateObserver* observer)
+                                             BitrateObserver* observer,
+                                             RtcEventLog* event_log)
     : clock_(clock),
       observer_(observer),
       last_bitrate_update_ms_(clock_->TimeInMilliseconds()),
-      bandwidth_estimation_(),
+      event_log_(event_log),
+      bandwidth_estimation_(event_log),
       reserved_bitrate_bps_(0),
       last_bitrate_bps_(0),
       last_fraction_loss_(0),
@@ -143,7 +148,7 @@
                                           int max_bitrate_bps) {
   {
     rtc::CritScope cs(&critsect_);
-    bandwidth_estimation_ = SendSideBandwidthEstimation();
+    bandwidth_estimation_ = SendSideBandwidthEstimation(event_log_);
     bandwidth_estimation_.SetBitrates(bitrate_bps, min_bitrate_bps,
                                       max_bitrate_bps);
   }
@@ -158,11 +163,6 @@
   MaybeTriggerOnNetworkChanged();
 }
 
-void BitrateControllerImpl::SetEventLog(RtcEventLog* event_log) {
-  rtc::CritScope cs(&critsect_);
-  bandwidth_estimation_.SetEventLog(event_log);
-}
-
 void BitrateControllerImpl::OnReceivedEstimatedBitrate(uint32_t bitrate) {
   {
     rtc::CritScope cs(&critsect_);