### Preflight Checklist

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:**
  * 8.2.1
* **Operating System:**
  * macOS 10.14.6

### Expected Behavior
The Referer header should be able to be set on ClientRequest objects via request.setHeader(name, value).

### Actual Behavior
Referer header isn't being set at all (headers can be viewed by using a proxy like Charles or Fiddler).

### To Reproduce
```const { app } = require('electron')
app.on('ready', () => {
  const { net } = require('electron')
  const request = net.request('https://github.com')
  request.on('response', (response) => {
    console.log(response.statusCode})
    console.log(JSON.stringify(response.headers))
    response.on('data', (chunk) => {
      console.log(chunk)
    })
    response.on('end', () => {
      console.log('No more data in response.')
    })
  })

  # this referer header should be set
  request.setHeader('referer', 'https://github.com')

  request.end()
})
```

### Additional Information
There does seem to be a Referrer property on the request that can be seen when using webRequest.onBeforeRequest but as far as I can see it's always empty and cannot be modified.

Being able to set the referer header is a basic and fundamental requirement for working with some websites, would be great if this issue could be fixed.

Massively appreciate all the developers taking the time working and updating this project.

shell/browser/api/electron_api_url_loader.cc
loader_.reset();
  pinned_wrapper_.Reset();
  pinned_chunk_pipe_getter_.Reset();
  
  
}
gin::Handle<SimpleURLLoaderWrapper> SimpleURLLoaderWrapper::Create(
    gin::Arguments* args) {
  gin_helper::Dictionary opts;
  if (!args->GetNext(&opts)) {
    args->ThrowTypeError("Expected a dictionary");
    return gin::Handle<SimpleURLLoaderWrapper>();
  }
  auto request = std::make_unique<network::ResourceRequest>();
  request->force_ignore_site_for_cookies = true;
  opts.Get("method", &request->method);
  opts.Get("url", &request->url);
  std::map<std::string, std::string> extra_headers;
  if (opts.Get("extraHeaders", &extra_headers)) {
    for (const auto& it : extra_headers) {
      if (!net::HttpUtil::IsValidHeaderName(it.first) ||
          !net::HttpUtil::IsValidHeaderValue(it.second)) {
        args->ThrowTypeError("Invalid header name or value");
        return gin::Handle<SimpleURLLoaderWrapper>();
      }
      request->headers.SetHeader(it.first, it.second);
    }