protozero: Make ScatteredStreamMemoryDelegate production-ready

Currently, this delegate is only used in testing, but we'd like to use
it e.g. for tracing to a heap buffer before the perfetto service is
available.

This patch makes the delegate compatible with chromium's
HeapScatteredStreamWriterDelegate and renames it to ScatteredHeapBuffer.
In particular, it adds a way to obtain the chunk data without copying
them into a stitched vector.

As a follow-up, we can then remove chromium's HSSWD and replace it with
perfetto's SHB.

Change-Id: I4a4c07f81edd7d9ff5ec8b3f977d72ca1668c09d
diff --git a/Android.bp b/Android.bp
index 749b7af..fb4bd23 100644
--- a/Android.bp
+++ b/Android.bp
@@ -69,7 +69,7 @@
     "src/protozero/message_handle.cc",
     "src/protozero/proto_decoder.cc",
     "src/protozero/proto_field_descriptor.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/tracing/core/android_log_config.cc",
@@ -224,7 +224,7 @@
     "src/protozero/message_handle.cc",
     "src/protozero/proto_decoder.cc",
     "src/protozero/proto_field_descriptor.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/traced/probes/android_log/android_log_data_source.cc",
@@ -393,7 +393,7 @@
     "src/protozero/message_handle.cc",
     "src/protozero/proto_decoder.cc",
     "src/protozero/proto_field_descriptor.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/tracing/core/android_log_config.cc",
@@ -560,7 +560,7 @@
     "src/protozero/message_handle.cc",
     "src/protozero/proto_decoder.cc",
     "src/protozero/proto_field_descriptor.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/traced/probes/android_log/android_log_data_source.cc",
@@ -2301,7 +2301,7 @@
     "src/protozero/message_handle.cc",
     "src/protozero/proto_decoder.cc",
     "src/protozero/proto_field_descriptor.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/tracing/core/android_log_config.cc",
@@ -2572,7 +2572,7 @@
     "src/protozero/proto_decoder_unittest.cc",
     "src/protozero/proto_field_descriptor.cc",
     "src/protozero/proto_utils_unittest.cc",
-    "src/protozero/scattered_stream_memory_delegate.cc",
+    "src/protozero/scattered_heap_buffer.cc",
     "src/protozero/scattered_stream_null_delegate.cc",
     "src/protozero/scattered_stream_writer.cc",
     "src/protozero/scattered_stream_writer_unittest.cc",