Client can hang forever waiting for Upstream

If there is a problem waiting to read data from an upstream, such as a timeout, the client will sit there waiting indefinitely for output.  This patch checks to see if there was an error reading (output from upstream) or writing a response and if an issue occurs it closes the connection.