pw_rpc: Responder & testing improvements

- Fill out remaining server-side Nanopb client & bidirectional streaming
  features and add tests.
- Use MethodType instead of a custom HasClientStream in Responder.
- Expose RawFakeChannelOutput and NanopbFakeChannelOutput for testing
  use.
- Reorganize test utils headers to avoid the need to add "." as an
  include path.

Change-Id: I3dd59ca593bd6ddd311d91a3de7f1b7eb60e3214
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/57881
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
diff --git a/pw_rpc/fake_channel_output.cc b/pw_rpc/fake_channel_output.cc
index 1ed1f24..0fc56dc 100644
--- a/pw_rpc/fake_channel_output.cc
+++ b/pw_rpc/fake_channel_output.cc
@@ -12,7 +12,7 @@
 // License for the specific language governing permissions and limitations under
 // the License.
 
-#include "pw_rpc_private/fake_channel_output.h"
+#include "pw_rpc/internal/fake_channel_output.h"
 
 #include "pw_assert/check.h"
 #include "pw_result/result.h"
@@ -46,7 +46,7 @@
   switch (result.value().type()) {
     case PacketType::RESPONSE:
       // Server streaming RPCs don't have a payload in their response packet.
-      if (!server_streaming_) {
+      if (!HasServerStream(method_type_)) {
         ProcessResponse(result.value().payload());
       }
       done_ = true;