* **Electron Version:**
  * 5.0.0 beta 5
* **Operating System:**
  * Windows 10
* **Last Known Working Electron version:**:
  * ?

### Expected Behavior
`tray.popUpContextMenu()` should do nothing (and no harm) if the context menu is already showing.

### Actual Behavior
App crashes.

### To Reproduce
Example that calls popUpContextMenu twice:

main.js:

    const {app, Menu, Tray, nativeImage} = require('electron')

    function main () {
      tray = new Tray(nativeImage.createEmpty())
      tray.setContextMenu(Menu.buildFromTemplate([{ label: "Test" }]));
      setTimeout(() => tray.popUpContextMenu(), 3000)  
      tray.popUpContextMenu()
    }
atom/browser/ui/win/notify_icon.cc
host_->Remove(this);
  NOTIFYICONDATA icon_data;
  InitIconData(&icon_data);
  Shell_NotifyIcon(NIM_DELETE, &icon_data);
}
void NotifyIcon::HandleClickEvent(int modifiers,
                                  bool left_mouse_click,
                                  bool double_button_click) {
  gfx::Rect bounds = GetBounds();
  if (left_mouse_click) {
    if (double_button_click)  
      NotifyDoubleClicked(bounds, modifiers);
    else  
      NotifyClicked(bounds,
                    display::Screen::GetScreen()->GetCursorScreenPoint(),
                    modifiers);
    return;
  } else if (!double_button_click) {  
    if (menu_model_)
      PopUpContextMenu(gfx::Point(), menu_model_);
    else
      NotifyRightClicked(bounds, modifiers);
  }
}
void NotifyIcon::ResetIcon() {