tp: implement graph reachability macro in standard library

This CL adds a macro which computes the nodes reacahable from a given
start point from a graph. This is returned as a table containing the
tree rooted at the start node and with parent-child links between
the nodes reachable on the graph as implied by a DFS.

Change-Id: I2827abbd4fa33467ad76ab2f87c292b76d34dfa2
diff --git a/BUILD b/BUILD
index e38a6df..9cc4a38 100644
--- a/BUILD
+++ b/BUILD
@@ -2187,6 +2187,8 @@
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/connected_flow.h",
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/descendant.cc",
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/descendant.h",
+        "src/trace_processor/perfetto_sql/intrinsics/table_functions/dfs.cc",
+        "src/trace_processor/perfetto_sql/intrinsics/table_functions/dfs.h",
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/dominator_tree.cc",
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/dominator_tree.h",
         "src/trace_processor/perfetto_sql/intrinsics/table_functions/experimental_annotated_stack.cc",
@@ -2314,6 +2316,7 @@
     name = "src_trace_processor_perfetto_sql_stdlib_graphs_graphs",
     srcs = [
         "src/trace_processor/perfetto_sql/stdlib/graphs/dominator_tree.sql",
+        "src/trace_processor/perfetto_sql/stdlib/graphs/search.sql",
     ],
 )