pw_rpc: Support testing services with mixed protobuf libraries

- Replace the public internal method lookup generated functions with a
  private array of method IDs. Create a MethodLookup class that is
  friended by generated services to access this array.
- Use the generated method ID array to support method lookup in services
  with multiple different protobuf implementations (Nanopb and raw).
- Ensure that the correct method implementation is selected when looking
  up a method at compile time. This prevents accidentally accessing a
  Nanopb method as a raw method or vice versa in a test method context.

Change-Id: I0ea334c02ae7c29e50099aa5bcfa975df625d15e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/25740
Commit-Queue: Wyatt Hepler <hepler@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_rpc/BUILD.gn b/pw_rpc/BUILD.gn
index 1dee6ca..4b6d0ea 100644
--- a/pw_rpc/BUILD.gn
+++ b/pw_rpc/BUILD.gn
@@ -41,6 +41,7 @@
     "public/pw_rpc/internal/call.h",
     "public/pw_rpc/internal/hash.h",
     "public/pw_rpc/internal/method.h",
+    "public/pw_rpc/internal/method_lookup.h",
     "public/pw_rpc/internal/method_union.h",
     "public/pw_rpc/internal/server.h",
     "server.cc",