apps/production: Add ProximitySensor and SamplingThread

- Create FakeProximitySensor for the host target.
- Add system::ProximitySensor() accessor to //system, with LTR-559 for
  rp2040 and FakeProximitySensor for host.
- Add SamplingThread that reads from the prox sensor every 100ms. Will
  add button, temperature, and other reads to this thread later.

Change-Id: I16baf73e31efb48f56a7dc03549675d2c6235113
Reviewed-on: https://pigweed-internal-review.git.corp.google.com/c/pigweed/showcase/rp2/+/71460
Reviewed-by: Keir Mierle <keir@google.com>
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Taylor Cramer <cramertj@google.com>
Commit-Queue: Wyatt Hepler <hepler@google.com>
diff --git a/modules/sampling_thread/sampling_thread.h b/modules/sampling_thread/sampling_thread.h
new file mode 100644
index 0000000..94af3bc
--- /dev/null
+++ b/modules/sampling_thread/sampling_thread.h
@@ -0,0 +1,19 @@
+// Copyright 2024 The Pigweed Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy of
+// the License at
+//
+//     https://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+namespace am {
+
+// Reads sensor samples in a loop and publishes PubSub events for them.
+[[noreturn]] void SamplingThread();
+
+}  // namespace am