Move internal PeerConnection methods to PeerConnectionInternal

PeerConnectionInternal is being introduced so that it can be mocked in
tests and so that a fake can be written for it to be used by stats
tests.

Bug: webrtc:8764
Change-Id: I375d12ce352523e8ac584402685a7870bc399fac
Reviewed-on: https://webrtc-review.googlesource.com/43202
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21747}
diff --git a/pc/statscollector.h b/pc/statscollector.h
index 1a3abfc..c171dca 100644
--- a/pc/statscollector.h
+++ b/pc/statscollector.h
@@ -22,11 +22,10 @@
 #include "api/mediastreaminterface.h"
 #include "api/peerconnectioninterface.h"
 #include "api/statstypes.h"
+#include "pc/peerconnectioninternal.h"
 
 namespace webrtc {
 
-class PeerConnection;
-
 // Conversion function to convert candidate type string to the corresponding one
 // from  enum RTCStatsIceCandidateType.
 const char* IceCandidateTypeToStatsType(const std::string& candidate_type);
@@ -43,7 +42,7 @@
  public:
   // The caller is responsible for ensuring that the pc outlives the
   // StatsCollector instance.
-  explicit StatsCollector(PeerConnection* pc);
+  explicit StatsCollector(PeerConnectionInternal* pc);
   virtual ~StatsCollector();
 
   // Adds a MediaStream with tracks that can be used as a |selector| in a call
@@ -139,7 +138,7 @@
   StatsCollection reports_;
   TrackIdMap track_ids_;
   // Raw pointer to the peer connection the statistics are gathered from.
-  PeerConnection* const pc_;
+  PeerConnectionInternal* const pc_;
   double stats_gathering_started_;
 
   // TODO(tommi): We appear to be holding on to raw pointers to reference