Add write deadline to Git HTTP responses
Fixes https://gitlab.com/gitlab-org/gitlab-workhorse/issues/66
High-level approach to cleaning up connections that don't finish reading their HTTP response.
A Go HTTP response has two parts: one call to WriteHeader and multiple calls to Write. Each of these calls, which normally takes less than a second (think: sending 32kB of data over a TCP connection), gets a 10-minute deadline. By putting a new deadline on each call, instead of a deadline on the entire request-reponse cycle, we allow arbitrarily large responses to be sent.