ListCommits RPC implementation
ListCommits is an RPC that will allow a client to fetch many commits in one RPC and by only one running git process. This will allow the overhead to be amortized over all the commits the client requests.
Started working in this to be able to benchmark better how having one catfile process per request would on my local environment. This is also why tests are missing at this time.
Part of: #1487 (closed)