Issue #21: HTTPError improvements + spec

When the resolver gets an erroneous response (such as a 404), raise
an HTTPError with:

- `message` set to "Error: 404" (or whatever the code is)
- `response` set to the original response object