Provide explicit error kind for disambiguation of underlying cause.

Closes #560 

@swankjesse 
We don't hand you any of the response body for network errors, even if the `IOException` happens on the very last byte.