Enable GN check for webrtc/{p2p,system_wrappers}

Introduce new small header-only targets in system_wrappers:
:cpu_features_api
:field_trial_api
:metrics_api
to untangle and optimize dependencies but still satisfy GN check.

In webrtc/p2p, previously uncovered header "base/fakecandidatepair.h"
is added to :p2p_test_utils target.

Refactor system_wrappers so 'rtc_p2p' can depend on only
system_wrappers:field_trial_api instead of all of system_wrappers
(which led to a breakage in Chromium that called for the revert of
https://codereview.webrtc.org/2735583002).

BUG=webrtc:6828
NOTRY=True

Review-Url: https://codereview.webrtc.org/2739863002
Cr-Commit-Position: refs/heads/master@{#17812}
diff --git a/webrtc/api/BUILD.gn b/webrtc/api/BUILD.gn
index 71e5243..fdd441a 100644
--- a/webrtc/api/BUILD.gn
+++ b/webrtc/api/BUILD.gn
@@ -35,7 +35,9 @@
 }
 
 rtc_static_library("libjingle_peerconnection_api") {
-  check_includes = false  # TODO(kjellander): Remove (bugs.webrtc.org/6828)
+  # Cannot have GN check enabled since that would introduce dependency cycles
+  # TODO(kjellander): Remove (bugs.webrtc.org/7504)
+  check_includes = false
   cflags = []
   sources = [
     "datachannel.h",
@@ -82,7 +84,18 @@
 
   deps = [
     ":rtc_stats_api",
+    "..:webrtc_common",
+    "../base:rtc_base",
+    "../base:rtc_base_approved",
+    "audio_codecs:audio_codecs_api",
   ]
+
+  # This is needed until bugs.webrtc.org/7504 is removed so this target can
+  # properly depend on ../media:rtc_media_base
+  # TODO(kjellander): Remove this dependency.
+  if (is_nacl) {
+    deps += [ "//native_client_sdk/src/libraries/nacl_io" ]
+  }
 }
 
 rtc_source_set("ortc_api") {