Better recovery by SocketChangeTracker if none of response body arrives

If the server is behind a gateway that’s buffering chunked responses, and also killing sockets after inactivity, then the change tracker might see an empty response when the socket is closed (instead of the prologue “{“results”:” that it expects). Updated -handleInvalidResponse for this case.
Fixes #155