Keep track of HTTP Error responses and fix failing test

Hi cyx,

I'd like to have more granularity when answering to http errors so I added `http_error` to the `Requests::Error` class. This lets the client have different responses to statuses >= 400 without needing to parse the `Requests::Error` message