fix(tooling): migrate 'kythe ls' filters from deprecated FileTree API (#3566)

diff --git a/kythe/go/services/cli/command_ls.go b/kythe/go/services/cli/command_ls.go
index c82c976..a7c06b6 100644
--- a/kythe/go/services/cli/command_ls.go
+++ b/kythe/go/services/cli/command_ls.go
@@ -83,14 +83,25 @@
 	}
 
 	if c.filesOnly {
-		dir.Subdirectory = nil
+		dir.Entry = filterEntries(dir.Entry, ftpb.DirectoryReply_FILE)
 	} else if c.dirsOnly {
-		dir.File = nil
+		dir.Entry = filterEntries(dir.Entry, ftpb.DirectoryReply_DIRECTORY)
 	}
 
 	return c.displayDirectory(dir)
 }
 
+func filterEntries(entries []*ftpb.DirectoryReply_Entry, kind ftpb.DirectoryReply_Kind) []*ftpb.DirectoryReply_Entry {
+	var j int
+	for _, e := range entries {
+		if e.Kind == kind {
+			entries[j] = e
+			j++
+		}
+	}
+	return entries[:j]
+}
+
 func (c lsCommand) displayCorpusRoots(cr *ftpb.CorpusRootsReply) error {
 	if DisplayJSON {
 		return PrintJSONMessage(cr)