Updates to error reporting in edge cases

This is a change to fix #24 as reported.  The change creates an error object in the case where there is HTTP status code outside of the 200 range that sends back a response that is empty.  Previously this would return nothing as the error in the `error` and `complete` handlers (error in that case was set to data, which was nothing because the response was emtpy).