* 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_job_factory.cc
const std::string& scheme,
    std::unique_ptr<ProtocolHandler> protocol_handler) {
  if (!base::ContainsKey(protocol_handler_map_, scheme) ||
      base::ContainsKey(original_protocols_, scheme))
    return false;
  ProtocolHandler* original_protocol_handler = protocol_handler_map_[scheme];
  protocol_handler_map_[scheme] = protocol_handler.release();
  original_protocols_[scheme].reset(original_protocol_handler);
  return true;
}
bool AtomURLRequestJobFactory::UninterceptProtocol(const std::string& scheme) {
  auto it = original_protocols_.find(scheme);
  if (it == original_protocols_.end())
    return false;
  protocol_handler_map_[scheme] = it->second.release();
  original_protocols_.erase(it);
  return true;
}
ProtocolHandler* AtomURLRequestJobFactory::GetProtocolHandler(