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.  
Yes an empty headers please.

Also please set body to undefined. `null` is valid JSON, `undefined` is not.