**Is your feature request related to a problem? Please describe.**
It's mostly related to #14837. Without "Accessibility" consent in "Privacy and Security" since Mojave electron will crash on unregisterAll and return incorrect result in register (true even if it actually wasn't registered) for media shortcuts.

It also will be good to be able to ask for this consent manually or check it's presence.

**Describe the solution you'd like**
Expose [AXIsProcessTrustedWithOptions](https://developer.apple.com/documentation/applicationservices/1459186-axisprocesstrustedwithoptions) with both popup showing and not and add these checks to register/unregister/unregisterAll for Mojave.

**Describe alternatives you've considered**
I've created [a small node.js package](https://github.com/4ndv/node-mac-accessibility-features-check) to perform this checks on my app side, but it's still an incorrect behavior to crash on unregisterAll

atom/browser/api/atom_api_system_preferences.h
static void BuildPrototype(v8::Isolate* isolate,
                             v8::Local<v8::FunctionTemplate> prototype);
#if defined(OS_WIN)
  bool IsAeroGlassEnabled();
  std::string GetAccentColor();
  std::string GetColor(const std::string& color, mate::Arguments* args);
  void InitializeWindow();
  
  void OnSysColorChange() override;
  
  void OnFinishLaunching(const base::DictionaryValue& launch_info) override;
#elif defined(OS_MACOSX)
  using NotificationCallback =
      base::Callback<void(const std::string&, const base::DictionaryValue&)>;
  void PostNotification(const std::string& name,
                        const base::DictionaryValue& user_info,
                        mate::Arguments* args);
  int SubscribeNotification(const std::string& name,
                            const NotificationCallback& callback);
  void UnsubscribeNotification(int id);
  void PostLocalNotification(const std::string& name,
                             const base::DictionaryValue& user_info);
  int SubscribeLocalNotification(const std::string& name,
                                 const NotificationCallback& callback);
  void UnsubscribeLocalNotification(int request_id);
  void PostWorkspaceNotification(const std::string& name,
                                 const base::DictionaryValue& user_info);
  int SubscribeWorkspaceNotification(const std::string& name,
                                     const NotificationCallback& callback);
  void UnsubscribeWorkspaceNotification(int request_id);