Emit errors thrown by xhr.send()

When a user refreshes at _just_ the right moment during connection, Chrome gets stuck into a state where XHR refuses all `xhr.send()` calls with DOMException `NetworkError`.  Subsequent refreshes don't clear this error.  This PR makes sure that at least the `error` event is emitted when this happens.  The thrown exception cannot be caught since it's on a clear stack due to `util.defer()` being used.