Avoid creating MemoryAllocatorDump for individual sockets

This CL creates a StreamSocket::SocketMemoryStats to hold relevant
socket information so that we can avoid creating individual
MemoryAllocatorDump for each socket. MemoryAllocatorDump is expensive
to create. This CL makes net/ MemoryDumpProvider create fewer
MemoryAllocatorDump so that it can be enabled in Slow Reports.

BUG=669108

Review-Url: https://codereview.chromium.org/2623803002
Cr-Commit-Position: refs/heads/master@{#443103}
diff --git a/net/socket/ssl_client_socket_impl.h b/net/socket/ssl_client_socket_impl.h
index 4d44008..d010852 100644
--- a/net/socket/ssl_client_socket_impl.h
+++ b/net/socket/ssl_client_socket_impl.h
@@ -117,9 +117,7 @@
   void ClearConnectionAttempts() override {}
   void AddConnectionAttempts(const ConnectionAttempts& attempts) override {}
   int64_t GetTotalReceivedBytes() const override;
-  void DumpMemoryStats(
-      base::trace_event::ProcessMemoryDump* pmd,
-      const std::string& parent_dump_absolute_name) const override;
+  void DumpMemoryStats(SocketMemoryStats* stats) const override;
 
   // Dumps memory allocation stats. |pmd| is the browser process memory dump.
   static void DumpSSLClientSessionMemoryStats(