[roll third_party/pigweed] pw_rpc: Python client improvements

- Use the Call object directly as the context object. This is simpler
  and makes cancelling prior calls easier.
- Return the previous context when a duplicate RPC is called.
- Cancel the prior RPC call when the same RPC is called again on the
  same channel.
- Update the response iteration API.
  - Don't use "block" since it is redundant with timeout_s=0.
  - Accept optional "count" arg for how many responses to receive.
  - Don't cancel the RPC if iteration fails. If there is a server error,
    the RPC will be terminated anyway. The user may cancel directly on
    the call object or by using it in a with block.
  - Remove accidental get_responses on client streaming RPCs.
- Propagate exceptions from user callbacks so they aren't just logged.
- Add unit and integration tests.

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

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 1a88725edb3e6ef..420af4b4688268c
Roller-URL: https://ci.chromium.org/b/8838708703912662865
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8838708703912662865
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I704e993c4e7bd6203985d7d3a158ba1cdb99bb93
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/57341
Bot-Commit: 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 1a88725..420af4b 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit 1a88725edb3e6ef4c0375cc10d897ae00885312c
+Subproject commit 420af4b4688268c17f49dcebf607edcdf6541487