Add support for commit squashing to improve performance of file history retrieval

Seafile currently creates a new commit for every file modification, which can lead to a large number of commits over time. When trying to retrieve the history of files that were edited a long time ago, this can result in long wait times. For me, a file edited 4 months ago takes about 10 minutes to fully load the history.

To improve the performance of history retrieval, I think a commit squashing feature could be implemented. This would allow users to group multiple commits into a single commit for a specific time period, such as a day or a week, and reduce the number of commits stored in the repository.

Is this solution viable? Are there other ways to speed up history retrieval in Seafile?

Thank you to the Seafile team for creating such a valuable product!