[roll third_party/pigweed] pw_env_setup: Pin Python package versions

Add a file to pass to the '--constraint' option of 'pip'. This allows
setup.cfg files to only set actual requirements on dependencies but
ensures the actual version retrieved for a given commit is always the
same.

Added a new command 'pw python-packages'. 'pw python-packages list'
writes the list of versions of installed packages to a file.
'pw python-packages diff' compares the list of installed packages to the
constraint file. If there are new packages or updates to package
versions 'pw python-packages diff' will fail.

Added an option to pw_env_setup, '--unpin-pip-packages'. If this is set
the constraint file defined in the top-level '.gn' file is ignored. This
should periodically be used to update versions of packages in the
constraint file.

Original-Bug: 459
Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/58280

https://pigweed.googlesource.com/pigweed/pigweed
third_party/pigweed Rolled-Commits: 38dd043be6bf0ca..43851ceac02d52b
Roller-URL: https://ci.chromium.org/b/8836667362115341585
Cq-Cl-Tag: roller-builder:pigweed-sample-project-roller
Cq-Cl-Tag: roller-bid:8836667362115341585
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Id28eae28e14eaf96cd53274bc13ea126633fb538
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/sample_project/+/60080
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 38dd043..43851ce 160000
--- a/third_party/pigweed
+++ b/third_party/pigweed
@@ -1 +1 @@
-Subproject commit 38dd043be6bf0ca128737422d45e07de74c62e6a
+Subproject commit 43851ceac02d52b733bd2d6fdf3e86aad7801ac4