pw_rpc: Handle client streams in the server

- Handle client stream messages in the RPC server. Client streaming RPCs
  cannot yet be created.
- Add callbacks for errors, client stream messages, and client stream
  completion.
- Rename Responder's Finish to CloseAndSendStatus to avoid overlapping
  Reader/Writer implementations' Finish() methods.
- Move Nanopb ServerWrite::Write to the .cc file.

Change-Id: Ie4894e6b2fd47a6fc7efdfba58ebeaddff9002e0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/50362
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 25953c4..dac6ea8 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -100,6 +100,7 @@
     "$dir_pw_containers:intrusive_list",
     dir_pw_assert,
     dir_pw_bytes,
+    dir_pw_function,
     dir_pw_status,
   ]
   deps = [ dir_pw_log ]
@@ -128,6 +129,7 @@
   public = [
     "public/pw_rpc/internal/test_method.h",
     "pw_rpc_private/fake_channel_output.h",
+    "pw_rpc_private/fake_server_reader_writer.h",
     "pw_rpc_private/internal_test_utils.h",
     "pw_rpc_private/method_impl_tester.h",
   ]