Compatibility with request

Fixes #41 
Not backward-compatible. I propose this to be released as 2.0

I removed all deprecated behavior, The request-alike HTTP error handling is now default, with an option to go back to getting an error when HTTP is not 2xx

xhr also returns a custom response object based on what is a common simple HTTP response in node, and there's a field that holds the original XMLHttpRequest object.  
xhr.timeout doesn't work in some of the supported browsers, including phantomjs and old safari.
This is a solution that behaves just as the `request`'s timeout and same as jquery 1.x