* 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
public:
  explicit ResponsePiper(URLRequestFetchJob* job)
      : first_write_(true), job_(job) {}
  
  int Initialize(const net::CompletionCallback& callback) override {
    return net::OK;
  }
  int Write(net::IOBuffer* buffer,
            int num_bytes,
            const net::CompletionCallback& callback) override {
    if (first_write_) {
      
      
      job_->HeadersCompleted();
      first_write_ = false;
    }
    return job_->DataAvailable(buffer, num_bytes, callback);
  }
  int Finish(const net::CompletionCallback& callback) override {
    return net::OK;
  }
 private:
  bool first_write_;
  URLRequestFetchJob* job_;
  DISALLOW_COPY_AND_ASSIGN(ResponsePiper);
};
}  
URLRequestFetchJob::URLRequestFetchJob(