pw_function: Standard callback API

This implements pw::Function, a standard wrapper for callable objects.

This CL is currently provided as a proof-of-concept implementation based
on fbl::Function, and does not necessarily represent the final design of
pw::Function.

Change-Id: Ie2f5714b9711a08de878471e8f31fc46b26d36e8
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/46080
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Commit-Queue: Alexei Frolov <frolv@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0b707ca..1c7b277 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -37,6 +37,7 @@
 add_subdirectory(pw_containers EXCLUDE_FROM_ALL)
 add_subdirectory(pw_cpu_exception EXCLUDE_FROM_ALL)
 add_subdirectory(pw_cpu_exception_cortex_m EXCLUDE_FROM_ALL)
+add_subdirectory(pw_function EXCLUDE_FROM_ALL)
 add_subdirectory(pw_hdlc EXCLUDE_FROM_ALL)
 add_subdirectory(pw_kvs EXCLUDE_FROM_ALL)
 add_subdirectory(pw_log EXCLUDE_FROM_ALL)