* Implement BuildTreeTabs() and FlattenTreeTabs()
TreeTabNodes are specialized TabCollections that wrap individual tabs,
allowing for hierarchical nesting and advanced tab relationships.
- `BuildTreeTabs()`: Converts tab structure to tree hierarchy
by wrapping all tabs in TreeTabNodes
- `FlattenTreeTabs()`: Reverses the process, extracting tabs from
TreeTabNodes back to non-tree-tabs structure while preserving order
- `BraveTabStripModel` exposes BuildTreeTabs/FlattenTreeTabs APIs for testing
- `BraveTabStripModel` will automatically build or flatten tree tabs
based on user preferences, specifically the `kTreeTabsEnabled` and
`kVerticalTabsEnabled` preferences.
- Methods are feature-gated behind kBraveTreeTab feature flag
- TreeTabNodes can be added to unpinned collections, split and tab groups
- Support for recursive nesting: TreeTabNode -> Group -> TreeTabNode
- Maintains compatibility with existing tab strip infrastructure