The new `setAsDefaultProtocolClient`  and `removeAsDefaultProtocolClient` APIs are great, but without a way to query the current state, it's not possible to implement a UI element like this one. I think it'd be great to add `isDefaultProtocolClient`!

![image](https://cloud.githubusercontent.com/assets/1037212/14545184/fc1a6fac-026a-11e6-98d5-8bf6b2f9678e.png)

Also, I find the naming of these APIs pretty confusing. On Mac OS X and iOS `mailto` is referred to as a "URL Scheme", not a protocol (https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference), and it seems like that might be the case on Windows too. (https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx)

It'd be nice to clarify that this is registering the app system-wide, while the other `protocol` module is only for handling requests initiated from within the app. 

Maybe we could change these to `registerForURLScheme`, `isRegisteredForURLScheme`?

atom/browser/api/atom_api_app.cc
scoped_ptr<base::DictionaryValue> options,
    const net::CompletionCallback& callback,
    scoped_ptr<CertificateManagerModel> model) {
  certificate_manager_model_ = std::move(model);
  int rv = ImportIntoCertStore(certificate_manager_model_.get(),
                               *(options.get()));
  callback.Run(rv);
}
#endif
mate::Handle<App> App::Create(v8::Isolate* isolate) {
  return mate::CreateHandle(isolate, new App(isolate));
}
void App::BuildPrototype(
    v8::Isolate* isolate, v8::Local<v8::ObjectTemplate> prototype) {
  auto browser = base::Unretained(Browser::Get());
  mate::ObjectTemplateBuilder(isolate, prototype)
      .SetMethod("quit", base::Bind(&Browser::Quit, browser))
      .SetMethod("exit", base::Bind(&Browser::Exit, browser))
      .SetMethod("focus", base::Bind(&Browser::Focus, browser))
      .SetMethod("getVersion", base::Bind(&Browser::GetVersion, browser))
      .SetMethod("setVersion", base::Bind(&Browser::SetVersion, browser))
      .SetMethod("getName", base::Bind(&Browser::GetName, browser))
      .SetMethod("setName", base::Bind(&Browser::SetName, browser))
      .SetMethod("isReady", base::Bind(&Browser::is_ready, browser))
      .SetMethod("addRecentDocument",
                 base::Bind(&Browser::AddRecentDocument, browser))
      .SetMethod("clearRecentDocuments",