<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:** 
  * <!-- (output of `node_modules/.bin/electron --version`) e.g. 4.0.3 --> 5.0.3
* **Operating System:** 
  * <!-- (Platform and Version) e.g. macOS 10.13.6 / Windows 10 (1803) / Ubuntu 18.04 x64 --> macOS 10.14
* **Last Known Working Electron version:** 
  * <!-- (if applicable) e.g. 3.1.0 --> n/a

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->

`app.moveToApplicationsFolder` should throw when it fails, as the docs say.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->

It doesn't throw, in fact it even returns `true`.

### To Reproduce

- Have Foo v1 located in `/Applications/Foo.app`
- Open it
- Have Foo v2, still named `Foo.app`, located somewhere else
- Open it
- Use `app.moveToApplicationsFolder`.
- Instead of moving the app the currently open Foo v1 window will be focused, and `app.moveToApplicationsFolder` returns `true` instead of throwing.

shell/browser/api/atom_api_app.cc
char temporaryCString[kCStringSize] = {0};
  CFStringGetCString(value, temporaryCString, kCStringSize,
                     kCFStringEncodingUTF8);
  region = temporaryCString;
#else
  const char* locale_ptr = setlocale(LC_TIME, NULL);
  if (!locale_ptr)
    locale_ptr = setlocale(LC_NUMERIC, NULL);
  if (locale_ptr) {
    std::string locale = locale_ptr;
    std::string::size_type rpos = locale.find('.');
    if (rpos != std::string::npos)
      locale = locale.substr(0, rpos);
    rpos = locale.find('_');
    if (rpos != std::string::npos && rpos + 1 < locale.size())
      region = locale.substr(rpos + 1);
  }
#endif
  return region.size() == 2 ? region : std::string();
}
void App::OnSecondInstance(const base::CommandLine::StringVector& cmd,
                           const base::FilePath& cwd) {
  Emit("second-instance", cmd, cwd);
}
bool App::HasSingleInstanceLock() const {
  if (process_singleton_)
    return true;
  return false;
}
bool App::RequestSingleInstanceLock() {