pw_trace: Add facade

This change adds the start of the pw_trace facade, include the API and
some basic tests. Currently this only has the gn build file, and still
needs docs.

Change-Id: I76eee7bcdb68e688d2f1c47978916d775ea1e84f
diff --git a/pw_preprocessor/macro_arg_count_test.cc b/pw_preprocessor/macro_arg_count_test.cc
index fe985c2..0ce8831 100644
--- a/pw_preprocessor/macro_arg_count_test.cc
+++ b/pw_preprocessor/macro_arg_count_test.cc
@@ -251,5 +251,17 @@
   // clang-format on
 }
 
+TEST(DelegateByArgCount, WithoutAndWithoutArguments) {
+#define TEST_SUM0() (0)
+#define TEST_SUM1(a) (a)
+#define TEST_SUM2(a, b) ((a) + (b))
+#define TEST_SUM3(a, b, c) ((a) + (b) + (c))
+
+  static_assert(PW_DELEGATE_BY_ARG_COUNT(TEST_SUM) == 0);
+  static_assert(PW_DELEGATE_BY_ARG_COUNT(TEST_SUM, 5) == 5);
+  static_assert(PW_DELEGATE_BY_ARG_COUNT(TEST_SUM, 1, 2) == 3);
+  static_assert(PW_DELEGATE_BY_ARG_COUNT(TEST_SUM, 1, 2, 3) == 6);
+}
+
 }  // namespace
 }  // namespace pw