m/pkg/logtree: implement klog parsing

This adds logtree.KLogParser, a shim which parses klog/glog-formatted
lines into logtree leveled logging.

This will be used to consume logs from external components (like
Kubernetes services) into leveled logging inside logtree.

An alternative would be to switch all Kubernetes components to
'structured' (JSON) logging - but that seems to still be experimental,
and does not exactly map into something that we can log further. Maybe
in the future we can switch over, and also copy these over into our own
binary/structured logging.

Test Plan: Adds unit tests for parsing, which is the most tricky part.

X-Origin-Diff: phab/D715
GitOrigin-RevId: 9994d819f15c9542800d488f57c83ab945a35d34
diff --git a/metropolis/pkg/logtree/BUILD.bazel b/metropolis/pkg/logtree/BUILD.bazel
index 5573807..d325e42 100644
--- a/metropolis/pkg/logtree/BUILD.bazel
+++ b/metropolis/pkg/logtree/BUILD.bazel
@@ -7,6 +7,7 @@
         "journal.go",
         "journal_entry.go",
         "journal_subscriber.go",
+        "klog.go",
         "leveled.go",
         "leveled_payload.go",
         "logtree.go",
@@ -26,7 +27,9 @@
     name = "go_default_test",
     srcs = [
         "journal_test.go",
+        "klog_test.go",
         "logtree_test.go",
     ],
     embed = [":go_default_library"],
+    deps = ["@com_github_google_go_cmp//cmp:go_default_library"],
 )