Treat SocketTimeoutException as a SocketException.

Prior to this commit a SocketTimeoutException was handled as a generic
IOException, causing a 500 error to be written to the response stream before
closing it. This caused clients not prepared to send multiple requests per
connection to receive a 500 error on the _next_ request, regardless of the
success/failure of that new follow-up request.

This patch modifies NanoHTTPD to treat a timeout the same as the remote client
closing the connection normally.