Currently, when a user calls `makeSingleInstance` they need to handle the second instance in a callback.

A better pattern for both users and third-party modules who want to use this information would be to emit an event on the `app` module when the second instance starts.

A pattern like:

```js
app.makeSingleInstance();

app.on('second-instance', (e, argv) => {
  // do-stuff
});
```

As step 1 I'll introduce support for the event and deprecate the callback.  Then in a major version, we can remove the callback.
atom/browser/api/atom_api_app.h
#if defined(OS_MACOSX)
  bool MoveToApplicationsFolder(mate::Arguments* args);
  bool IsInApplicationsFolder();
#endif
#if defined(MAS_BUILD)
  base::Callback<void()> StartAccessingSecurityScopedResource(
      mate::Arguments* args);
#endif
#if defined(OS_WIN)
  
  v8::Local<v8::Value> GetJumpListSettings();
  
  JumpListResult SetJumpList(v8::Local<v8::Value> val, mate::Arguments* args);
#endif  
  std::unique_ptr<ProcessSingleton> process_singleton_;
#if defined(USE_NSS_CERTS)
  std::unique_ptr<CertificateManagerModel> certificate_manager_model_;
#endif
  
  base::CancelableTaskTracker cancelable_task_tracker_;
  base::FilePath app_path_;
  using ProcessMetricMap =
      std::unordered_map<base::ProcessId, std::unique_ptr<atom::ProcessMetric>>;
  ProcessMetricMap app_metrics_;
  DISALLOW_COPY_AND_ASSIGN(App);
};
}  
}  
#endif