* Electron version: 1.4.9
* Operating system: Windows 10 x64

### Expected behavior
The new request generated by interceptHttpProtocol should work normally with new session(slaveSession).

### Actual behavior
The new request seems to stick with the old session(mainSession).

### How to reproduce
```
const electron = require('electron')
const {app, protocol} = require('electron')
const BrowserWindow = electron.BrowserWindow
const {session} = require('electron')

let mainWindow
let mainSession
let slaveSession

app.on('ready', function(){
  mainSession = session.fromPartition('main')
  slaveSession = session.fromPartition('slave')
  mainWindow = new BrowserWindow({
    webPreferences: {
        javascript: true,
        plugins: true,
        webSecurity: false,
        session: mainSession
      }
    });
  
  mainWindow.webContents.openDevTools()

  mainSession.protocol.interceptHttpProtocol('http', function(request, callback) {
    if(request.url.indexOf('/api/list') >= 0){
      request.url = "custom:" + request.url.split(':')[1]
      callback(request)
    } else {
      console.log('pass ' + request.url)
      callback({'url': request.url, 'method': request.method, 'session': slaveSession})  
    }
  }, function(error){
    if (error) log("interceptHttpProtocol error: " + error)
  })

  mainWindow.loadURL("http://pan.baidu.com")
})
```
The following codes will enter infinite loop:
```
pass http://pan.baidu.com/
pass http://pan.baidu.com/
...
...
```
But there is no interceptHttpProtocol defined on slaveSession, is it a bug?

atom/browser/net/url_request_fetch_job.cc
net::URLRequest* request, net::NetworkDelegate* network_delegate)
    : JsAsker<net::URLRequestJob>(request, network_delegate),
      pending_buffer_size_(0),
      write_num_bytes_(0) {
}
void URLRequestFetchJob::BeforeStartInUI(
    v8::Isolate* isolate, v8::Local<v8::Value> value) {
  mate::Dictionary options;
  if (!mate::ConvertFromV8(isolate, value, &options))
    return;
  
  
  v8::Local<v8::Value> session;
  if (options.Get("session", &session) && session->IsNull()) {
    
    url_request_context_getter_ = new brightray::URLRequestContextGetter(
        this, nullptr, nullptr, base::FilePath(), true,
        BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::IO),
        BrowserThread::UnsafeGetMessageLoopForThread(BrowserThread::FILE),
        nullptr, content::URLRequestInterceptorScopedVector());
  }
}
void URLRequestFetchJob::StartAsync(std::unique_ptr<base::Value> options) {