[roll third_party/pigweed] pw_rpc: Generate RPC definition stubs separately

- Define an interface for generating stubs.
- Generate the method implementation stubs outside the class.
- Share more code between raw and Nanopb RPC stub generation.
- Skip empty names in the C++ namespace to avoid outputting "::".

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/39201

third_party/pigweed Rolled-Commits: 895423426369958..df38ed19386233a
Roller-URL: https://ci.chromium.org/b/8851380019488615776
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8851380019488615776
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I50630c2835108c10cf807d31a4e57bab58439753
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/39521
Reviewed-by: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
Commit-Queue: Pigweed Integration Roller <pigweed-integration-roller@pigweed.google.com.iam.gserviceaccount.com>
diff --git a/third_party/pigweed b/third_party/pigweed
index 8954234..df38ed1 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit 89542342636995801953b8eadaab3e2ee9a221f7
+Subproject commit df38ed19386233a99c01165a09fc37d228b76357