Minor changes to IPC layer in preparation for Win port.

This CL doesn't introduce any major change (neither on
Windows nor on Linux). It mainly refactor the codebase
to make the Windows IPC cls easier to review:
- Rename the GN target platform_posix to platform_impl
  (Soon the same target will have a platform_windows.cc)
- Add a platform_unittest to cover the platform TLS logic.
- Refactor ThreadTaskRunner to directly expose a TaskRunner
  interface (soon platform_windows.cc will need it as well).
- Refactor a bunch of places to take a ScopedSocketHandle
  rather than a ScopedFile. They are the same type on POSIX
  but not on Windows (where the latter wraps a SOCKET).
- Remove the fd() argument from the base SharedMemory class.
  That makes sense only on POSIX and it caused a lot of empty
  implementation around (note: this will cause a Chromium
  roll failure, we need to match the removal in .MojoSharedMemory)
- Minor other tweaks to get rid of platform-specific includes.

Bug: 174454879
Test: manual on Windows.
Change-Id: Iead1ec87213c56fd3bb170c72d482f71fa33e7e3
diff --git a/BUILD b/BUILD
index 20db6b0..2579427 100644
--- a/BUILD
+++ b/BUILD
@@ -1595,9 +1595,9 @@
     ],
 )
 
-# GN target: //src/tracing:platform_posix
+# GN target: //src/tracing:platform_impl
 filegroup(
-    name = "src_tracing_platform_posix",
+    name = "src_tracing_platform_impl",
     srcs = [
         "src/tracing/platform_posix.cc",
     ],
@@ -3057,7 +3057,7 @@
         ":src_tracing_ipc_consumer_consumer",
         ":src_tracing_ipc_producer_producer",
         ":src_tracing_ipc_service_service",
-        ":src_tracing_platform_posix",
+        ":src_tracing_platform_impl",
         ":src_tracing_system_backend",
     ],
     hdrs = [