[roll third_party/pigweed] pw_transfer: Improve Python stream reopening and closing

This makes several changes to the way RPC streams are handled in the
Python transfer client:

- Limits RPC stream reopen attempts to a maximum number, after which
  ongoing transfers should fail.
- Refactors stream operations into a wrapper class to minimize duplicate
  code between read/write transfers.
- Improve logging around stream reopening.
- Automatically close RPC streams when the last transfer running on them
  completes.

Tested: Verified successful operation of multiple back-to-back transfers
on real hardware.

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

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 2ace3eed115d834..baed4c896be0422
Roller-URL: https://ci.chromium.org/b/8761068136404810465
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I5ad5094edc6e8771f7b7e09770136526fcb6ffb4
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/185912
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
diff --git a/third_party/pigweed b/third_party/pigweed
index 2ace3ee..baed4c8 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit 2ace3eed115d834191f94f82453878c324de9f33
+Subproject commit baed4c896be04221216ea205cc274e45ef0b451d