* Output of `node_modules/.bin/electron --version`: 4.0.0-beta.8
* Operating System (Platform and Version): Windows 10 1803
* Output of `node_modules/.bin/electron --version` on last known working Electron version (if applicable): 4.0.0-beta.7

**Expected Behavior**
`BrowserWindow.getNativeWindowHandle()` should return different value for different window

**Actual behavior**
`BrowserWindow.getNativeWindowHandle()` returns same value for different window, which is not true nativeWindowHandle for any of them.

**To Reproduce**
Open two `BrowserWindow`, and run `getNativeWindowHandle` on both `BrowserWindow`
```js
const { remote } = require('electron')
w1 = new remote.BrowserWindow()
w2 = new remote.BrowserWindow()
console.log(w1.getNativeWindowHandle(), w2.getNativeWindowHandle())
```
![image](https://user-images.githubusercontent.com/8194131/49328509-7411a800-f5b5-11e8-9a24-827aa589d937.png)


atom/browser/api/atom_api_top_level_window.cc
v8::Local<v8::Object> wrapper,
                               const mate::Dictionary& options)
    : TopLevelWindow(isolate, options) {
  InitWith(isolate, wrapper);
  
  window()->InitFromOptions(options);
}
TopLevelWindow::~TopLevelWindow() {
  if (!window_->IsClosed())
    window_->CloseImmediately();
  
  
  base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, window_.release());
}
void TopLevelWindow::InitWith(v8::Isolate* isolate,
                              v8::Local<v8::Object> wrapper) {
  AttachAsUserData(window_.get());
  mate::TrackableObject<TopLevelWindow>::InitWith(isolate, wrapper);
  
  
  if (!parent_window_.IsEmpty()) {
    mate::Handle<TopLevelWindow> parent;
    mate::ConvertFromV8(isolate, GetParentWindow(), &parent);
    DCHECK(!parent.IsEmpty());
    parent->child_windows_.Set(isolate, weak_map_id(), wrapper);
  }
}
void TopLevelWindow::WillCloseWindow(bool* prevent_default) {