feat(services/git): Add Git service with transparent LFS support
Which issue does this PR close?
Closes #6831.
Rationale for this change
OpenDAL has support for specific git service providers like HuggingFace, but not a generic git provider with LFS support. These changes provide generic git + LFS file streaming support using an OpenDAL service git.
What changes are included in this PR?
A new service git, documentation, and crate features for the new service.
Are there any user-facing changes?
A new service back end!
NOTE - I tested these changes pretty comprehensively on LFS repositories in my private Gitlab instance as well as on HuggingFace, both with and without credentials on private and public repositories, and I tested non-LFS repos as well including on Github.
I created a companion demo project here that bootstraps this particular version of OpenDAL using a git submodule, and provides a simple CLI tool to clone git repository states including LFS to the local file system to demonstrate the new service.