1) We cannot send "Connection: close", because the fsouza docker client
expects the tcp socket to stay open between requests.
2) Because we cannot force-close the connection, we can't hijack the
connection (because go's net/http doesn't let use un-hijack it).
3) Because we need to maintain the individual chunking of messages (for
docker-py), we can't just copy the response body, as Go will remove and
re-add the chunking willy-nilly.
Therefore, we have to read each chunk one-by-one, and flush the
ResponseWriter after each one.
The go docker client's ErrNoSuchImage does not include the image
name. However, it is imperative that this name appears in error
messages sent to clients, since the docker client, as of version
1.7.0, only automatically pulls images when their name is present in
the error.
Fixes#967.