Add streams() to RtpReceiverInterface and implementations.

This makes the receiver know about its associated set of streams, the
equivalent of the [[AssociatedRemoteMediaStreams]] slot in the spec,
https://w3c.github.io/webrtc-pc/#dfn-x%5B%5Bassociatedremotemediastreams%5D%5D

This does not change layers below peerconnection.cc. The streams are set
upon the receiver's construction and is not modified for the duration of
its lifetime.

When we support modifying the associated set of streams of a receiver
the receiver needs to know about it. The receiver's streams() should be
used in all places where a receiver's streams need to be known.

Bug: webrtc:8473
Change-Id: I31202973aed98e61fa9b6a78b52e815227b6c17d
Reviewed-on: https://webrtc-review.googlesource.com/22922
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20825}
diff --git a/pc/peerconnection_rtp_unittest.cc b/pc/peerconnection_rtp_unittest.cc
index 0261b1a..860c6dc 100644
--- a/pc/peerconnection_rtp_unittest.cc
+++ b/pc/peerconnection_rtp_unittest.cc
@@ -72,10 +72,10 @@
   ASSERT_EQ(1u, callee->observer()->add_track_events_.size());
   // TODO(deadbeef): When no stream is handled correctly we would expect
   // |add_track_events_[0].streams| to be empty. https://crbug.com/webrtc/7933
-  ASSERT_EQ(1u, callee->observer()->add_track_events_[0].streams.size());
-  EXPECT_TRUE(
-      callee->observer()->add_track_events_[0].streams[0]->FindAudioTrack(
-          "audio_track"));
+  auto& add_track_event = callee->observer()->add_track_events_[0];
+  ASSERT_EQ(1u, add_track_event.streams.size());
+  EXPECT_TRUE(add_track_event.streams[0]->FindAudioTrack("audio_track"));
+  EXPECT_EQ(add_track_event.streams, add_track_event.receiver->streams());
 }
 
 TEST_F(PeerConnectionRtpTest, AddTrackWithStreamFiresOnAddTrack) {
@@ -89,12 +89,11 @@
   ASSERT_TRUE(callee->SetRemoteDescription(caller->CreateOfferAndSetAsLocal()));
 
   ASSERT_EQ(1u, callee->observer()->add_track_events_.size());
-  ASSERT_EQ(1u, callee->observer()->add_track_events_[0].streams.size());
-  EXPECT_EQ("audio_stream",
-            callee->observer()->add_track_events_[0].streams[0]->label());
-  EXPECT_TRUE(
-      callee->observer()->add_track_events_[0].streams[0]->FindAudioTrack(
-          "audio_track"));
+  auto& add_track_event = callee->observer()->add_track_events_[0];
+  ASSERT_EQ(1u, add_track_event.streams.size());
+  EXPECT_EQ("audio_stream", add_track_event.streams[0]->label());
+  EXPECT_TRUE(add_track_event.streams[0]->FindAudioTrack("audio_track"));
+  EXPECT_EQ(add_track_event.streams, add_track_event.receiver->streams());
 }
 
 TEST_F(PeerConnectionRtpTest, RemoveTrackWithoutStreamFiresOnRemoveTrack) {