pw_stream: Allow staging data to MemoryWriter end

Changes the memory writer to use std::memmove to allow data to be staged
to the unused portion of a MemoryWriter's buffer before it is written.
This is useful for operations that require direct access to a buffer to
build data before it is flushed to a MemoryWriter.

No-Docs-Update-Reason: Optimization that shouldn't be advertised
Change-Id: I3728e50e30031d7f87db43981827ef799fbce217
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/40244
Reviewed-by: David Rogers <davidrogers@google.com>
Commit-Queue: Armando Montanez <amontanez@google.com>
diff --git a/pw_stream/CMakeLists.txt b/pw_stream/CMakeLists.txt
index 55a9f96..c414144 100644
--- a/pw_stream/CMakeLists.txt
+++ b/pw_stream/CMakeLists.txt
@@ -37,3 +37,13 @@
     pw_stream
     pw_sys_io
 )
+
+pw_add_test(pw_stream.memory_stream_test
+  SOURCES
+    memory_stream_test.cc
+  DEPS
+    pw_stream
+  GROUPS
+    modules
+    pw_stream
+)