Remove SendPacer from ViEEncoder and make sure SendPacer starts at a valid bitrate

This reverts commit e30c27205148b34ba421184efe65f6a0780b436d (https://codereview.webrtc.org/1958053002/)

Original reverted cl is in patch set #1.
Changes in following patch sets.

The cl now also make sure SendPacer starts with the configured bitrate provided in a call to CongestionController::SetBweBitrates)()

It turns out that the failing tests in 609816 is due to a bug in the current code that runs the proper at 300kbit regardless of configured start bitrate.

Original cl description:
Remove SendPacer from ViEEncoder
This CL moves the logic where the ViEEncoder pause if the pacer is full to the BitrateController. If the queue is full, the controller reports a bitrate of zero to  Call (and BitrateAllocator)

BUG=chromium:609816, webrtc:5687
TBR=mflodman@webrtc.org
NOTRY=True  // Due to bug  in android_x86 cq builder....

Review-Url: https://codereview.webrtc.org/1958113003
Cr-Commit-Position: refs/heads/master@{#12688}
diff --git a/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc b/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
index 3c0d37c..09652d8 100644
--- a/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
+++ b/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
@@ -83,6 +83,10 @@
   return new BitrateControllerImpl(clock, observer);
 }
 
+BitrateController* BitrateController::CreateBitrateController(Clock* clock) {
+  return new BitrateControllerImpl(clock, nullptr);
+}
+
 BitrateControllerImpl::BitrateControllerImpl(Clock* clock,
                                              BitrateObserver* observer)
     : clock_(clock),
@@ -94,8 +98,8 @@
       last_fraction_loss_(0),
       last_rtt_ms_(0),
       last_reserved_bitrate_bps_(0) {
-  // This calls the observer_, which means that the observer provided by the
-  // user must be ready to accept a bitrate update when it constructs the
+  // This calls the observer_ if set, which means that the observer provided by
+  // the user must be ready to accept a bitrate update when it constructs the
   // controller. We do this to avoid having to keep synchronized initial values
   // in both the controller and the allocator.
   MaybeTriggerOnNetworkChanged();
@@ -199,11 +203,15 @@
 }
 
 void BitrateControllerImpl::MaybeTriggerOnNetworkChanged() {
-  uint32_t bitrate;
+  if (!observer_)
+    return;
+
+  uint32_t bitrate_bps;
   uint8_t fraction_loss;
   int64_t rtt;
-  if (GetNetworkParameters(&bitrate, &fraction_loss, &rtt))
-    observer_->OnNetworkChanged(bitrate, fraction_loss, rtt);
+
+  if (GetNetworkParameters(&bitrate_bps, &fraction_loss, &rtt))
+    observer_->OnNetworkChanged(bitrate_bps, fraction_loss, rtt);
 }
 
 bool BitrateControllerImpl::GetNetworkParameters(uint32_t* bitrate,