Fix circular dependencies in webrtc_common.

One reason for the circular deps is that common_types.h is a
historical dumping ground for various structs and defines that
are believed to be generally useful. I tried moving things out
that did not appear to be used downstream (StreamCounters,
RtpCounters etc) and moved the things that seemed used
(RtpHeader + supporting structs) to a new file api/rtp_headers.h.
This makes their place in the api more clear while moving out
the things that don't belong in the API in the first place.

I had to extract out typedefs.h from webrtc_common to resolve
another circular dependency. I believe checks includes typedefs,
but common depends on checks.

Bug: webrtc:7745
Change-Id: I725d49616b1ec0cdc8b74be7c078f7a4d46f084b
Reviewed-on: https://webrtc-review.googlesource.com/33001
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21295}
diff --git a/BUILD.gn b/BUILD.gn
index 6153e4f..9b4248b 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -350,11 +350,24 @@
   }
 }
 
+rtc_source_set("typedefs") {
+  sources = [
+    "typedefs.h",
+  ]
+}
+
 rtc_static_library("webrtc_common") {
   sources = [
     "common_types.cc",
     "common_types.h",
-    "typedefs.h",
+  ]
+  deps = [
+    ":typedefs",
+    "api:array_view",
+    "api:optional",
+    "rtc_base:checks",
+    "rtc_base:deprecation",
+    "rtc_base:stringutils",
   ]
 
   if (!build_with_chromium && is_clang) {