Create a real error object on bad HTTP response

I frequently find myself special-casing the OAuth request error responses, since they are not instances of the Error class.

This change adds a new class, OAuth.Error, and returns it in case of errors in the HTTP requests. It has the same properties as the original Object instance.