Replace "PhutilFileTree" with a more abstract "VectorTree"


Replace "PhutilFileTree" with a more abstract "VectorTree"

Ref T13520. Replace "FileTree" with a "VectorTree" that does roughly the same thing. The major goals are:

  • Compress trees which contain sequences of child directories with no sibilings.
  • Build hierarchies of paths where path components may include renames.

This is approximately similar to "FileTree" and similar to client logic in the new paths panel.

Test Plan: See next change.

Maniphest Tasks: T13520

Differential Revision: https://secure.phabricator.com/D21182