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.cc
if (Emit("open-file", file_path)) {
    *prevent_default = true;
  }
}
void App::OnOpenURL(const std::string& url) {
  Emit("open-url", url);
}
void App::OnActivate(bool has_visible_windows) {
  Emit("activate", has_visible_windows);
}
void App::OnWillFinishLaunching() {
  Emit("will-finish-launching");
}
void App::OnFinishLaunching(const base::DictionaryValue& launch_info) {
#if defined(OS_LINUX)
  
  
  media::AudioManager::SetGlobalAppName(Browser::Get()->GetName());
#endif
  Emit("ready", launch_info);
}
void App::OnPreMainMessageLoopRun() {
  content::BrowserChildProcessObserver::Add(this);
  if (process_singleton_) {
    process_singleton_->OnBrowserReady();
  }
}
void App::OnAccessibilitySupportChanged() {