Reland "Move creating encoder to VideoStreamEncoder."

This is a reland of fb82fcc7f9c414dc8ba1ddd314e9524fee54cb80

Original change's description:
> Move creating encoder to VideoStreamEncoder.
>
> This used to be in WebRtcVideoChannel::WebRtcVideoSendStream.
> One implication is that encoder is not created until the first
> frame arrives, and some of the tests needed updates to emit a
> frame or two.
>
> Bug: webrtc:8830
> Change-Id: I78169b2bb4dfa4197b4b4229af9fd69d0f747835
> Reviewed-on: https://webrtc-review.googlesource.com/64885
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#22905}

TBR=magjed@webrtc.org,kwiberg@webrtc.org

Bug: webrtc:8830
Change-Id: I9565095ea1880fb49d15111198c08b2fcb84f18c
Reviewed-on: https://webrtc-review.googlesource.com/70740
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22930}
diff --git a/call/bitrate_estimator_tests.cc b/call/bitrate_estimator_tests.cc
index b4f808f..ea48a97 100644
--- a/call/bitrate_estimator_tests.cc
+++ b/call/bitrate_estimator_tests.cc
@@ -116,8 +116,8 @@
 
       video_send_config_ = VideoSendStream::Config(send_transport_.get());
       video_send_config_.rtp.ssrcs.push_back(kVideoSendSsrcs[0]);
-      // Encoders will be set separately per stream.
-      video_send_config_.encoder_settings.encoder = nullptr;
+      video_send_config_.encoder_settings.encoder_factory =
+          &fake_encoder_factory_;
       video_send_config_.rtp.payload_name = "FAKE";
       video_send_config_.rtp.payload_type = kFakeVideoSendPayloadType;
       test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config_);
@@ -162,10 +162,8 @@
           is_sending_receiving_(false),
           send_stream_(nullptr),
           frame_generator_capturer_(),
-          fake_encoder_(Clock::GetRealTimeClock()),
           fake_decoder_() {
       test_->video_send_config_.rtp.ssrcs[0]++;
-      test_->video_send_config_.encoder_settings.encoder = &fake_encoder_;
       send_stream_ = test_->sender_call_->CreateVideoSendStream(
           test_->video_send_config_.Copy(),
           test_->video_encoder_config_.Copy());
@@ -223,7 +221,6 @@
     VideoSendStream* send_stream_;
     VideoReceiveStream* video_receive_stream_;
     std::unique_ptr<test::FrameGeneratorCapturer> frame_generator_capturer_;
-    test::FakeEncoder fake_encoder_;
     test::FakeDecoder fake_decoder_;
   };