**Is your feature request related to a problem? Please describe.**

Currently, the only way to show the About panel on macOS is by creating a `{role: 'about'}` menu item and click it. I need to be able to show it manually.

**Describe the solution you'd like**

Electron already has the method, so it's just about exposing this to JS and documenting it:

https://github.com/electron/electron/blob/8ba271efba691357ab1970c1a553b4e019125574/atom/browser/browser_mac.mm#L376

Would also be useful to be able to pass in the panel options directly to the method to override the defaults.

I would call the method: `app.showAboutPanel(options)`

**Describe alternatives you've considered**

None.
atom/browser/api/atom_api_app.cc
else if (name == "music")
    return chrome::DIR_USER_MUSIC;
  else if (name == "pictures")
    return chrome::DIR_USER_PICTURES;
  else if (name == "videos")
    return chrome::DIR_USER_VIDEOS;
  else if (name == "pepperFlashSystemPlugin")
    return chrome::FILE_PEPPER_FLASH_SYSTEM_PLUGIN;
  else
    return -1;
}
bool NotificationCallbackWrapper(
    const base::Callback<
        void(const base::CommandLine::StringVector& command_line,
             const base::FilePath& current_directory)>& callback,
    const base::CommandLine::StringVector& cmd,
    const base::FilePath& cwd) {
  
  if (Browser::Get()->is_ready()) {
    callback.Run(cmd, cwd);
  } else {
    scoped_refptr<base::SingleThreadTaskRunner> task_runner(
        base::ThreadTaskRunnerHandle::Get());
    task_runner->PostTask(
        FROM_HERE, base::BindOnce(base::IgnoreResult(callback), cmd, cwd));
  }
  
  return !Browser::Get()->is_shutting_down();
}
void GotPrivateKey(std::shared_ptr<content::ClientCertificateDelegate> delegate,