* Output of `node_modules/.bin/electron --version`: v2.0.8
* Operating System (Platform and Version): macos 10.13.6

**To Reproduce**
1. `protocol.interceptStreamProtocol` to handle requests from electron
2. In the callback, give a header like:
```
callback({
  headers: {
    'Set-Cookie': ['foo', 'bar', 'baz']
  }
})
```
3. Request a url and inspect chrome dev tools


**Expected Behavior**
In dev tools you can see multiple set-cookie headers, and multiple cookies get set.

**Actual behavior**
No cookies are set.

---

**To Reproduce**
With a sample repo:


1. clone / checkout the branch I'm on

    ```
    git clone git@github.com:ibash/nativefier.git
    cd nativefier
    git checkout offline_2
    ```

1. install dependencies and build nativefier

    ```
    yarn install
    cd app
    yarn install
    cd ..
    yarn build
    ```

1. package an example app and then run it

    ```
    node lib/cli.js --name "Queue Offline"  "https://safaribooksonline.com"
    ./Queue\ Offline-darwin-x64/Queue\ Offline.app/Contents/MacOS/Queue\ Offline
    ```

1. open dev tools in the app

1. inspect a network request

**Expected Behavior**
All the network requests should have three headers: "TEST: first", "TEST: second", "TEST: third"

**Actual behavior**
A single header like: "TEST: first, second, third"

---


**Additional Information**
The problem is that `Converter<net::HttpResponseHeaders*>::FromV8` expects each header to only have a single string value,  [see this line of code](https://github.com/electron/electron/blob/0e3b2d92d7de5e1d14051c7daf930639cc34c51f/atom/common/native_mate_converters/net_converter.cc#L190).

Oddly enough converting headers _to_ v8 is correct, and handles multiple headers with the same name [as a list](https://github.com/electron/electron/blob/0e3b2d92d7de5e1d14051c7daf930639cc34c51f/atom/common/native_mate_converters/net_converter.cc#L163).

As far as I can tell there's no way to actually respond with multiple header values with the same name.

Last but not least, I found you can crash electron if you send a header value like: `{bar: 'foo\0 bar: foo2'}`
atom/common/native_mate_converters/net_converter.cc
v8::Isolate* isolate,
    const net::CertPrincipal& val) {
  mate::Dictionary dict(isolate, v8::Object::New(isolate));
  dict.Set("commonName", val.common_name);
  dict.Set("organizations", val.organization_names);
  dict.Set("organizationUnits", val.organization_unit_names);
  dict.Set("locality", val.locality_name);
  dict.Set("state", val.state_or_province_name);
  dict.Set("country", val.country_name);
  return dict.GetHandle();
}
v8::Local<v8::Value> Converter<net::HttpResponseHeaders*>::ToV8(