DEPS: Sync Git subtree mirrors instead of symlinking into chromium/src

This changes the way we pull in dependencies WebRTC shares with
Chromium. The base, build, tools and third_party directories from
Chromium are now synced as Git subtree mirrors in the DEPS file.

All symlinks to directories that were previously created by the
setup_links.py are replaced with proper DEPS entries.

One downside with this solution is that we get a lot of directories
in tools/ and third_party/ that we currently don't use. Going forward
it might be possible to improve this but as long as the BUILD.gn files
are stored in the Chromium repo rather at each dependency's repo,
this will be very cumbersome.

The DEPS file will be kept auto-rolled by the script in
https://chromium.googlesource.com/external/webrtc/+/master/tools-webrtc/autoroller/roll_deps.py
which is periodically executed by a bot.

This change brings back the Google Play Services download for Android,
which displays a license confirmation dialog to the user at the first sync.
By running it as a proper hook instead of inside sync_chromium.py, the
problems with that the interactive prompt gets hidden/stuck should be
fixed (now the behavior is identical to Chromium).

Some measurements on the size savings for a clean, newly created checkout:
Linux: 15GB -> 6.4GB (-8.6GB)
Linux (with Android): 25 GB -> 16 GB (-9GB). 8.4GB of this is Android SDK+NDK.
Mac (with iOS): 14 GB -> 5.6GB (-8.4GB)

Note that for all of the above, 1GB is occupied by the resources/ dir.

BUG=webrtc:5006, webrtc:5578
NOTRY=True
R=agable@chromium.org, henrika@webrtc.org, iannucci@chromium.org

Review-Url: https://codereview.webrtc.org/1414343008 .
Cr-Commit-Position: refs/heads/master@{#15754}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 6926dd5..d9c32be 100755
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -434,30 +434,13 @@
   results.extend(_CheckApprovedFilesLintClean(
       input_api, output_api, source_file_filter))
   results.extend(input_api.canned_checks.RunPylint(input_api, output_api,
-      black_list=(r'^.*gviz_api\.py$',
-                  r'^.*gaeunit\.py$',
-                  # Embedded shell-script fakes out pylint.
+      black_list=(r'^base[\\\/].*\.py$',
                   r'^build[\\\/].*\.py$',
                   r'^buildtools[\\\/].*\.py$',
-                  r'^chromium[\\\/].*\.py$',
-                  r'^mojo.*[\\\/].*\.py$',
                   r'^out.*[\\\/].*\.py$',
                   r'^testing[\\\/].*\.py$',
                   r'^third_party[\\\/].*\.py$',
-                  r'^tools[\\\/]clang[\\\/].*\.py$',
-                  r'^tools[\\\/]generate_library_loader[\\\/].*\.py$',
-                  r'^tools[\\\/]generate_stubs[\\\/].*\.py$',
-                  r'^tools[\\\/]gn[\\\/].*\.py$',
-                  r'^tools[\\\/]isolate_driver.py$',
-                  r'^tools[\\\/]mb[\\\/].*\.py$',
-                  r'^tools[\\\/]protoc_wrapper[\\\/].*\.py$',
-                  r'^tools[\\\/]python[\\\/].*\.py$',
-                  r'^tools[\\\/]python_charts[\\\/]data[\\\/].*\.py$',
-                  r'^tools[\\\/]refactoring[\\\/].*\.py$',
-                  r'^tools[\\\/]swarming_client[\\\/].*\.py$',
-                  r'^tools[\\\/]vim[\\\/].*\.py$',
-                  r'^tools[\\\/]valgrind[\\\/].*\.py$',
-                  r'^tools[\\\/]win[\\\/].*\.py$',
+                  r'^tools[\\\/].*\.py$',
                   # TODO(phoglund): should arguably be checked.
                   r'^tools-webrtc[\\\/]mb[\\\/].*\.py$',
                   r'^tools-webrtc[\\\/]valgrind[\\\/].*\.py$',