* Electron version: 1.8.2-beta.3
* Operating system: MacOS 10.12

### Expected behavior

File downloads from custom protocols should complete without issue.

### Actual behavior

Before even triggering the custom protocol handler, the download-item emits 'done' with a state of 'interrupted'. In my demo linked below, I use the new registerStreamProtocol, but I was able to reproduce using registerHttpProtocol as well.

### How to reproduce

Use https://github.com/pfrazee/electron-download-interrupt-bug

atom/browser/net/atom_url_request.cc
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
  if (!request_) {
    return;
  }
  request_->SetLoadFlags(request_->load_flags() | flags);
}
void AtomURLRequest::OnReceivedRedirect(net::URLRequest* request,
                                        const net::RedirectInfo& info,
                                        bool* defer_redirect) {
  DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
  if (!request_ || redirect_policy_ == "follow")
    return;
  if (redirect_policy_ == "error") {
    request->Cancel();
    DoCancelWithError(
        "Request cannot follow redirect with the current redirect mode", true);
  } else if (redirect_policy_ == "manual") {
    *defer_redirect = true;
    scoped_refptr<net::HttpResponseHeaders> response_headers =
        request->response_headers();
    content::BrowserThread::PostTask(
        content::BrowserThread::UI, FROM_HERE,
        base::Bind(&AtomURLRequest::InformDelegateReceivedRedirect, this,
                   info.status_code, info.new_method, info.new_url,
                   response_headers));
  }
}
void AtomURLRequest::OnAuthRequired(net::URLRequest* request,