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
std::vector<mate::Dictionary> result;
  int processor_count = base::SysInfo::NumberOfProcessors();
  for (const auto& process_metric : app_metrics_) {
    mate::Dictionary pid_dict = mate::Dictionary::CreateEmpty(isolate);
    mate::Dictionary memory_dict = mate::Dictionary::CreateEmpty(isolate);
    mate::Dictionary cpu_dict = mate::Dictionary::CreateEmpty(isolate);
    memory_dict.Set(
        "workingSetSize",
        static_cast<double>(
            process_metric.second->metrics->GetWorkingSetSize() >> 10));
    memory_dict.Set(
        "peakWorkingSetSize",
        static_cast<double>(
            process_metric.second->metrics->GetPeakWorkingSetSize() >> 10));
    size_t private_bytes, shared_bytes;
    if (process_metric.second->metrics->GetMemoryBytes(&private_bytes,
                                                       &shared_bytes)) {
      memory_dict.Set("privateBytes", static_cast<double>(private_bytes >> 10));