* Output of `node_modules/.bin/electron --version`:
v3.0.6
v4.0.0-beta.5

* Operating System (Platform and Version):
macOS High Siearra 10.13.6

* Output of `node_modules/.bin/electron --version` on last known working Electron version (if applicable):
v2.0.11

**Expected Behavior**
BrowserWindow.getNativeWindowHandle() must return non-nullable result.

**Actual behavior**
BrowserWindow.getNativeWindowHandle() returns null.

**To Reproduce**

***Sample code***
```
const { app, BrowserWindow } = require('electron');

let win

app
	.on('ready', () => {
		win = new BrowserWindow({width: 800, height: 600})
		win.loadURL('https://www.google.com')
		
		win.on('closed', () => win = null);

		const handle = win.getNativeWindowHandle();
		console.log('Current window: ' + handle.toString('hex'));
	})
	.on('window-all-closed', () => app.quit());
```

***Expected output***
Something different than `Current window: 0000000000000000`

***Actual output***
`Current window: 0000000000000000`
atom/browser/api/atom_api_top_level_window.cc
std::string level = "floating";
  int relative_level = 0;
  args->GetNext(&level);
  args->GetNext(&relative_level);
  std::string error;
  window_->SetAlwaysOnTop(top, level, relative_level, &error);
  if (!error.empty())
    args->ThrowError(error);
}
bool TopLevelWindow::IsAlwaysOnTop() {
  return window_->IsAlwaysOnTop();
}
void TopLevelWindow::Center() {
  window_->Center();
}
void TopLevelWindow::SetPosition(int x, int y, mate::Arguments* args) {
  bool animate = false;
  args->GetNext(&animate);
  window_->SetPosition(gfx::Point(x, y), animate);
}
std::vector<int> TopLevelWindow::GetPosition() {
  std::vector<int> result(2);
  gfx::Point pos = window_->GetPosition();
  result[0] = pos.x();
  result[1] = pos.y();
  return result;
}
#if defined(OS_WIN) || defined(OS_MACOSX)
void TopLevelWindow::MoveTop() {