Fix another upload-pack deadlock
There was still a deadlock when sending the response failed leaving the writer to stdin blocked.
The deadlock occurs when:
- io.Copy(w, stdout) fails due to the client ('w') going away
- the Git subprocess blocks trying to write to its stdout
- the main goroutine blocks on io.Copy(stdin, buffer)
So the problem this tries to solve is being able to cancel io.Copy(stdin, buffer).