Reorganize error interpretation code

This should result in more useful messages, since there were several
cases where we’d discard valuable text (in name of "user friendliness")
before.
Catch HTTP 403s
Don't default to ServiceRequestFailed as a generic error

ConnectionFailed is more appropriate.
Actually, we should set up the default error _first_

Our error templates may have better messages, so we’ll wait to apply
them until after the default.
Catch 404s that occur from using a PAT in basic auth
Check for X-OAuth-Scopes instead of matching tokens

This is a more robust way to determine whether the request was made
with a PAT.
Attempt a better phrasing of the OAuth scopes key
Factor out logic for finding the default error message
Factor out OTP header parsing
Move responseDictionary retrieval to default error method
Merge pull request #140 from octokit/improved-error-messages

Better 403 and 404 error messages