Content "gn check" work.

Make content/gpu and content/plugin pass GN check. Significant work for most of content/test

Makes most of content/shell and content/test pass check. These are not all enabled yet pending a few remaining issues that are more difficult to solve.

The private content targets now allow content/test to include headers from them for non-component builds. Checking is disabled for content/test in component builds as described in the comment at the top of //content/BUILD.gn

Renames the ui/events/ipc according to GN style.

Annotates all content and gpu visibility declarations with why the're there, and fixes some incorrect ones that people added without understanding.

Reland of https://codereview.chromium.org/1828483002/ with significant changes.
TBR=jschuh (non-security-sensitive ipc build changes)

Review URL: https://codereview.chromium.org/1833193002

Cr-Commit-Position: refs/heads/master@{#383358}
diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn
index 7ad6816d..3b83386 100644
--- a/gpu/command_buffer/service/BUILD.gn
+++ b/gpu/command_buffer/service/BUILD.gn
@@ -18,10 +18,9 @@
 }
 
 source_set("service_sources") {
-  visibility = [
-    "//gpu/*",
-    "//mojo/gles2:gles2",
-  ]
+  # External code should depend on this via //gpu/command_buffer/service above
+  # rather than depending on this directly or the component build will break.
+  visibility = [ "//gpu/*" ]
 
   sources = [
     "buffer_manager.cc",