* 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
#include "atom/common/native_mate_converters/net_converter.h"
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "atom/common/native_mate_converters/gurl_converter.h"
#include "atom/common/native_mate_converters/value_converter.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
#include "base/values.h"
#include "native_mate/dictionary.h"
#include "net/base/upload_bytes_element_reader.h"
#include "net/base/upload_data_stream.h"
#include "net/base/upload_element_reader.h"
#include "net/base/upload_file_element_reader.h"
#include "net/cert/x509_certificate.h"
#include "net/cert/x509_util.h"
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request.h"
#include "storage/browser/blob/upload_blob_element_reader.h"
#include "atom/common/node_includes.h"
namespace mate {
namespace {
bool CertFromData(const std::string& data,