Provide explicit error kind for disambiguation of underlying cause.

Closes #560 

@swankjesse 
Hmm, possibly. I generally fear the type explosion, but we seem pretty stable on the number of these things. Pre-1.0 Retrofit disambiguated the 4xx vs. 5xx stuff which I collapsed for the 1.0 release. I'll see what this looks like.