CMake: Revamp CMake build

- Define CMake cache variables (similar to gn args) for facade backends.
- Create simple initial toolchain files for GCC and Clang.
- Misc updates to pigweed.cmake and pw_build/CMakeLists.txt.
- Add or expand various CMakeLists.txt files.
- Watch CMake files in watch.py to support using CMake in pw watch.

Change-Id: I490d157485d02811a11f6a3589a0508ea1851f58
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/22840
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7f75c53..18d47db 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,14 +14,14 @@
 
 project(Pigweed)
 
-cmake_minimum_required(VERSION 3.14)
-
-include(pw_build/pigweed.cmake)
+cmake_minimum_required(VERSION 3.16)
 
 add_subdirectory(pw_assert)
 add_subdirectory(pw_assert_basic)
+add_subdirectory(pw_assert_log)
 add_subdirectory(pw_base64)
 add_subdirectory(pw_blob_store)
+add_subdirectory(pw_build)
 add_subdirectory(pw_bytes)
 add_subdirectory(pw_checksum)
 add_subdirectory(pw_containers)