Introduce WebRTC component build.

This CL switches all the Chromium dependencies from being direct
dependencies on WebRTC targets to a WebRTC component (which lives
at //third_party/webrtc_overrides:webrtc_component).

From now on, Chromium should never directly depend on WebRTC in
order to avoid issues explained at [1] (this will be guarded
by checkdeps and GN visibility (see [2])) but should only depend
on the WebRTC component.

This should solve a broad range of problems caused by WebRTC being
linked in different shared libraries when is_component_build=true
(from globals and singletons causing hard to debug issues, to ODR
violations and binary size increase).

[1] - https://chromium.googlesource.com/chromium/src.git/+/master/docs/component_build.md#dependencies-between-targets
[2] - https://webrtc-review.googlesource.com/c/src/+/154344

TBR: dcheng@chromium.org
Bug: webrtc:9419
Change-Id: Ice56827db1753f51592165a90c1094b468c8e188
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1874722
Commit-Queue: Mirko Bonadei <mbonadei@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Tommi <tommi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#715450}
54 files changed