[roll third_party/pigweed] pw_protobuf: Add helper for map entry write

Expose low level APIs in pw_protobuf for estimating field size and
writing length-delimited field key and length prefix. Use them to
implement a helper function in pw_software_update for writing proto
map<string, bytes> entries.

Context: UpdateBundle needs to construct the following Manifest
proto message from blob storage:

message Manifest {
  optional SnapshotMetadata snapshot_metadata = 1;
  map<string, TargetsMetadata> targets_metadata = 2;
}

For wire format generation, it is essentially equivalent to the
following definition with a nested `Entry` message.

message Entry {
    string key = 1;
    bytes value = 2;
}

message Manifest {
    optional bytes snapshot_metadata = 1;
    repeated Entry targets_metadata = 2;
}

Although protobuf::StreamEncoder has capability for nested message
encoding, it requires a scratch buffer that shall be at least the
largest sub-message size. In this case, it will be largest
target metadata in the update software bundle, which however, can be
fairly large and difficult to estimate. To avoid the issue, the CL
takes an approach to construct the message from lower level.
Specifically, the CL constructs the delimited field key and length
prefix for `Entry` on its own and write to output, then followed by
writing a regular string field of `key` and bytes field of `value` via
the normal StreamEncoder approach.

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

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 03e1b265752f327..931f4d54ab96caa
Roller-URL: https://ci.chromium.org/b/8836171133824955345
Cq-Cl-Tag: roller-builder:pigweed-experimental-roller
Cq-Cl-Tag: roller-bid:8836171133824955345
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: I6215c3127dd256a065ce48d7aa7255d1f0153065
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/experimental/+/60741
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 03e1b26..931f4d5 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit 03e1b265752f327972242e634e2029c416536ad9
+Subproject commit 931f4d54ab96caa81e736ab7341cf82b3c973028