* 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
const MessageCallback& callback) {
  messages_callback_map_[message] = callback;
  return true;
}
void TopLevelWindow::UnhookWindowMessage(UINT message) {
  if (!ContainsKey(messages_callback_map_, message))
    return;
  messages_callback_map_.erase(message);
}
bool TopLevelWindow::IsWindowMessageHooked(UINT message) {
  return ContainsKey(messages_callback_map_, message);
}
void TopLevelWindow::UnhookAllWindowMessages() {
  messages_callback_map_.clear();
}
bool TopLevelWindow::SetThumbnailClip(const gfx::Rect& region) {
  auto* window = static_cast<NativeWindowViews*>(window_.get());
  return window->taskbar_host().SetThumbnailClip(
      window_->GetAcceleratedWidget(), region);
}
bool TopLevelWindow::SetThumbnailToolTip(const std::string& tooltip) {
  auto* window = static_cast<NativeWindowViews*>(window_.get());
  return window->taskbar_host().SetThumbnailToolTip(
      window_->GetAcceleratedWidget(), tooltip);
}
void TopLevelWindow::SetAppDetails(const mate::Dictionary& options) {