Fix bootstrap failure by pinning setuptools

The `pkg_resources` module was removed in setuptools v70.0.0. However,
Pigweed's environment setup still relies on it during virtualenv creation.
This updates `pigweed.json` to specify `requirements` and `constraints`
to leverage Pigweed's upstream constraint file, ensuring that the pinned
`setuptools` version is used during `pip upgrade`. Additionally, this
updates `.gn` to use the correct path for `pw_build_PIP_CONSTRAINTS`.

Test:
Ran `rm -rf environment` followed by `source bootstrap.sh` to verify a
clean install works. Subsequently ran `source bootstrap.sh` again to
ensure re-running without a clean environment completes successfully
without errors.

Change-Id: Ie7f6e48406e92f46e7351f5886be504090ae18f2
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/examples/+/379592
diff --git a/.gn b/.gn
index fe3439e..c1b0f5e 100644
--- a/.gn
+++ b/.gn
@@ -23,6 +23,8 @@
 
   pw_build_PIP_REQUIREMENTS = [ "//docs/requirements.txt" ]
 
+  pw_build_PIP_CONSTRAINTS = [ "//third_party/pigweed/pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list" ]
+
   pw_build_TEST_TRANSITIVE_PYTHON_DEPS = false
 
   # Don't allow a plain .options file extension for pwpb protos.
diff --git a/pigweed.json b/pigweed.json
index dac285e..41fd1de 100644
--- a/pigweed.json
+++ b/pigweed.json
@@ -85,6 +85,12 @@
         "gn_root": ".",
         "gn_targets": [
           ":pip_install_sample_project_tools.install"
+        ],
+        "requirements": [
+          "docs/requirements.txt"
+        ],
+        "constraints": [
+          "third_party/pigweed/pw_env_setup/py/pw_env_setup/virtualenv_setup/constraint.list"
         ]
       },
       "required_submodules": [