Always return *ResponseError in NewReesponseError

Previously it could happen that the response body can't be decoded and the return error is a different type from *ResponseError. This causes downstream usage to handle different types of errors.

The solution is to always return *ResponseError and make the decoding error as part of the *ResponseError.
Merge pull request #56 from octokit/always_return_response_err

Always return *ResponseError in NewReesponseError