Make `transport::Service` `Debug` and add some HTTP constants from libgit2.
This PR adds a dependency on the http crate for the http::Method type, and adds some HTTP related constants defined in libgit2 at https://github.com/libgit2/libgit2/blob/2ecc8586f7eec4063b5da1563d0a33f9e9f9fcf7/src/libgit2/transports/http.c#L68-L95.
Can you say more about why this change would be added? What would it be used for?
Similar to my comment in #1066, adding a public dependency has a pretty high bar. Also, adding a new dependency also has a similar bar to reach of clearly justifying why the cost of adding it for all users is worth it.
This would be useful for users implementing their own git transport using one of rust's http(s) libraries (i.e. ureq, reqwest, etc). The headers and methods used by git protocol over http(s) are the same regardless of the client/implementation/etc, so making those available to anyone writing their own transport saves them from having to implement essentially identical functions.
I think it's super fair to not want to add more public dependencies (due to the cost downstream to match the version and have an extra crate to compile).
The solutions here are either to gate anything using/exposing the http crate behind a feature flag (thus making the dependency on the http crate optional, off by default), or replace the use of http::Method with a bespoke enum native to the git2 crate (eliminating the need to depend on http at all).