Make VideoTrack and VideoTrackRenderers implement rtc::VideoSourceInterface.

This patch tries to only change the interface to VideoTrack, with
minimal changes to the implementation. Some points worth noting:

VideoTrackRenderers should ultimately be deleted, but it is kept for
now since we need an object implementing webrtc::VideoRenderer, and
that shouldn't be VideoTrack.

BUG=webrtc:5426
TBR=glaznev@webrtc.org  // please look at  examples

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

Cr-Original-Commit-Position: refs/heads/master@{#11775}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: db25d2e8c57b14b14111ee6ab4a5cb6372142155
diff --git a/api/videotrack.h b/api/videotrack.h
index f2b8f19..1964cb4 100644
--- a/api/videotrack.h
+++ b/api/videotrack.h
@@ -22,11 +22,13 @@
 
 class VideoTrack : public MediaStreamTrack<VideoTrackInterface> {
  public:
-  static rtc::scoped_refptr<VideoTrack> Create(
-      const std::string& label, VideoSourceInterface* source);
+  static rtc::scoped_refptr<VideoTrack> Create(const std::string& label,
+                                               VideoSourceInterface* source);
 
-  virtual void AddRenderer(VideoRendererInterface* renderer);
-  virtual void RemoveRenderer(VideoRendererInterface* renderer);
+  void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
+                       const rtc::VideoSinkWants& wants) override;
+  void RemoveSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink) override;
+
   virtual VideoSourceInterface* GetSource() const {
     return video_source_.get();
   }