Improve API access to a repository tree
### Problem
[Repository Tree REST API](https://docs.gitlab.com/ee/api/repositories.html#list-repository-tree) and as well as [PaginatedTree GraphQL query](https://docs.gitlab.com/ee/api/graphql/reference/#repositorypaginatedtree) enforce a pagination maximum of 100 elements.
For WebIDE case, we need to return the full list of folders and files of the repository in a performant way.
> The Web IDE needs to support things like fuzzy file finding and moving directories without opening them. There's a number of operations that become unusable when we don't know the entire list of blobs up front.
[source](https://gitlab.com/gitlab-org/gitlab/-/issues/412288#note_1420441401)
[We added an option to skip pagination](https://gitlab.com/gitlab-org/gitlab/-/issues/365996) for this endpoint. This solution works, but it still feels like a hack. However, with the pagination it will require us to send thousands of requests (with 100 elements limit) to fetch all files. That's a big performance hit.
Moreover, the pagination for this endpoint does not make much sense from the performance point of view. We currently apply pagination after `git ls-tree` command was executed. In other words, we fetch the whole tree for paginated request first and [only after that apply the pagination](https://gitlab.com/gitlab-org/gitaly/-/blob/468ba7de9380a1eb6321dbdf9b7ddffd7eda90f7/internal/gitaly/service/commit/tree_entries.go#L184).
### Goal
Investigate and find a way to deliver repository tree to WebIDE in an efficient way
### Previous discussions
* https://gitlab.com/gitlab-org/gitlab/-/issues/412288
* https://gitlab.com/gitlab-org/gitlab/-/issues/365996
issue