[roll third_party/pigweed] pw_rpc: Avoid undefined behavior when casting to rpc::Writer

- Make pw::rpc::Writer a private base of pw::internal::Call instead of a
  derived class. Previously, Calls would downcast to Writer, which is
  undefined behavior since the object is not a Writer. Inverting the
  relationship and having Writer downcast to Call is equivalent, but
  safe and defined.
- Use an as_writer() function in place of implicit conversions to
  Writer, since implicit conversions to a private base are not possible.

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

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: c2403a44d4b4d87..8dc20520ccdf799
Roller-URL: https://ci.chromium.org/b/8757447496701056001
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I1594aab35c0a39dc02209f88288a8bcfdd2f3db0
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/189694
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
diff --git a/third_party/pigweed b/third_party/pigweed
index c2403a4..8dc2052 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit c2403a44d4b4d877f88de83d27d96e94533cd0f0
+Subproject commit 8dc20520ccdf7998f3452872a2bde44bc65b180c