**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
v8::Local<v8::Value> val,
                     Browser::LoginItemSettings* out) {
    mate::Dictionary dict;
    if (!ConvertFromV8(isolate, val, &dict))
      return false;
    dict.Get("openAtLogin", &(out->open_at_login));
    dict.Get("openAsHidden", &(out->open_as_hidden));
    dict.Get("path", &(out->path));
    dict.Get("args", &(out->args));
    return true;
  }
  static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
                                   Browser::LoginItemSettings val) {
    mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
    dict.Set("openAtLogin", val.open_at_login);
    dict.Set("openAsHidden", val.open_as_hidden);
    dict.Set("restoreState", val.restore_state);
    dict.Set("wasOpenedAtLogin", val.opened_at_login);
    dict.Set("wasOpenedAsHidden", val.opened_as_hidden);
    return dict.GetHandle();
  }
};
template <>
struct Converter<content::CertificateRequestResultType> {
  static bool FromV8(v8::Isolate* isolate,