Fix Gitaly duration measurements
In many cases, we were only measuring the time to return from the Gitaly
RPC, not the total execution time of the RPC itself for streaming responses. To handle this, we
wrap the RPC in a new method,
yields a response and consumes it.
CommitService has been updated to use this new measurement.
Other services should be updated in subsequent merge requests.
Relates to #30334