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
memory_dict.Set("sharedBytes", static_cast<double>(shared_bytes >> 10));
    }
    pid_dict.Set("memory", memory_dict);
    cpu_dict.Set(
        "percentCPUUsage",
        process_metric.second->metrics->GetPlatformIndependentCPUUsage() /
            processor_count);
#if !defined(OS_WIN)
    cpu_dict.Set("idleWakeupsPerSecond",
                 process_metric.second->metrics->GetIdleWakeupsPerSecond());
#else
    
    
    
    cpu_dict.Set("idleWakeupsPerSecond", 0);
#endif
    pid_dict.Set("cpu", cpu_dict);
    pid_dict.Set("pid", process_metric.second->pid);
    pid_dict.Set("type", content::GetProcessTypeNameInEnglish(
                             process_metric.second->type));
    result.push_back(pid_dict);
  }
  return result;
}
v8::Local<v8::Value> App::GetGPUFeatureStatus(v8::Isolate* isolate) {
  auto status = content::GetFeatureStatus();
  base::DictionaryValue temp;
  return mate::ConvertToV8(isolate, status ? *status : temp);
}
void App::EnableMixedSandbox(mate::Arguments* args) {