Refactor OperationService#commit_files into smaller methods, and handle arguments list more concisely
## Summary
The [OperationService#user_commit_files](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/gitaly_client/operation_service.rb#L489) method is quite lengthy (65 lines) and has an extensive argument list (`Metrics/ParameterLists` is disabled).
<!--
Please briefly describe what part of the code base needs to be refactored.
-->
## Improvements
One approach is suggested [here](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161981#note_2040903273).
In short, splitting the method into a few smaller methods, and refactoring the arguments list into commit settings/details objects.
There is also some upstream code that could be changed `Models::Repository#commit_files` accepts a hash of options that could also use commit settings/details objects. This might be a huge change though, as `Models::Repository#commit_files` is called from a number of places.
issue