[Adaptation] Add ability to inject resources on the PeerConnection.

This unblocks injecting platform-specific resources, such as power
usage signals in Chrome.

This CL adds AddAdaptationResource to PeerConnectionInterface and
integration tests verifying that if an injected resource is overusing,
resolution will soon be reduced.

To aid testing, some testing-only classes have been updated.

Bug: webrtc:11525
Change-Id: I820099e79f18d910fd641ee1412ad064b99ebce9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177003
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31505}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 2121744..30e414c 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -173,6 +173,7 @@
     ":rtp_parameters",
     ":rtp_transceiver_direction",
     ":scoped_refptr",
+    "adaptation:resource_adaptation_api",
     "audio:audio_mixer_api",
     "audio_codecs:audio_codecs_api",
     "crypto:frame_decryptor_interface",