* **Electron Version:**
  4.0.2
* **Operating System:**
  macOS 10.14.3
* **Last Known Working Electron version:**:
  1.7

### Expected Behavior
When creating a BrowserWindow it should not appear in the dock menu by defaults.

### Actual Behavior
It appears in the dock menu (example: `raven` in https://electronjs.org/docs/tutorial/macos-dock)

### To Reproduce
Just create new BrowserWindow, then right click on the app icon in the dock. (see https://electronjs.org/docs/tutorial/macos-dock)

At least it should be a way to control that, this can be achieve for top level window with:
`[window_ setExcludedFromWindowsMenu:YES];`, indeed [window isExcludedFromWindowsMenu] returns false by default, see

https://developer.apple.com/documentation/appkit/nsapplication/1428625-removewindowsitem
`Use the isExcludedFromWindowsMenu method of NSWindow if you want the item to remain excluded from the Window menu.`
https://developer.apple.com/documentation/appkit/nswindow/1419175-isexcludedfromwindowsmenu

atom/browser/api/atom_api_top_level_window.cc
window_->SetHasShadow(has_shadow);
}
bool TopLevelWindow::HasShadow() {
  return window_->HasShadow();
}
void TopLevelWindow::SetOpacity(const double opacity) {
  window_->SetOpacity(opacity);
}
double TopLevelWindow::GetOpacity() {
  return window_->GetOpacity();
}
void TopLevelWindow::SetShape(const std::vector<gfx::Rect>& rects) {
  window_->widget()->SetShape(std::make_unique<std::vector<gfx::Rect>>(rects));
}
void TopLevelWindow::SetRepresentedFilename(const std::string& filename) {
  window_->SetRepresentedFilename(filename);
}
std::string TopLevelWindow::GetRepresentedFilename() {
  return window_->GetRepresentedFilename();
}
void TopLevelWindow::SetDocumentEdited(bool edited) {
  window_->SetDocumentEdited(edited);
}
bool TopLevelWindow::IsDocumentEdited() {
  return window_->IsDocumentEdited();
}
void TopLevelWindow::SetIgnoreMouseEvents(bool ignore, mate::Arguments* args) {