- Electron version: 1.3.6
- Operating system: Windows 7 x64
- Other: Microsoft Office 2013 (will make more sense in a bit)

`shell.openItem()` is a blocking call, it would be nice if it's async or has an async version to handle synchronous external application behavior.

Reproduce: 
Open a password-protected Microsoft Excel file, `shell.openItem()` will be blocking until the Password window is submitted or dismissed. Consequently Microsoft Word does not have this issue.

Related to #2761.

shell/common/platform_util_linux.cc
base::LaunchOptions options;
  options.allow_new_privs = true;
  
  
  
  
  options.environment["MM_NOTTTY"] = "1";
  base::Process process = base::LaunchProcess(argv, options);
  if (!process.IsValid())
    return false;
  if (wait_for_exit) {
    int exit_code = -1;
    if (!process.WaitForExit(&exit_code))
      return false;
    return (exit_code == 0);
  }
  base::EnsureProcessGetsReaped(std::move(process));
  return true;
}
bool XDGOpen(const std::string& path, const bool wait_for_exit) {