When downloading and running Bitcoin core for the first time, after clicking through the "Are you sure you want to open. it?" screen, there's a possibility that macOS will pass an argument like `-psn_0_SOME_ID` to the application, which results in a shutdown as it's an invalid argument:

![v0 19 0rc1 args shutdown](https://user-images.githubusercontent.com/863730/67034964-b026fc00-f0e6-11e9-8462-70d0fcf613e6.png)

This only happens on the first run, subsequent opens will work fine, but we should filter these out, otherwise it's a poor and confusing first experience.

std::map<std::string, std::vector<std::string>>& args,
                                      std::string& error)
{
    assert(key[0] == '-');
    size_t option_index = key.find('.');
    if (option_index == std::string::npos) {
        option_index = 1;
    } else {
        ++option_index;
    }
    if (key.substr(option_index, 2) == "no") {
        key.erase(option_index, 2);
        if (flags & ArgsManager::ALLOW_BOOL) {
            if (InterpretBool(val)) {
                args[key].clear();
                return true;
            }
            
            LogPrintf("Warning: parsed potentially confusing double-negative %s=%s\n", key, val);
            val = "1";
        } else {
            error = strprintf("Negating of %s is meaningless and therefore forbidden", key.c_str());
            return false;
        }
    }
    args[key].push_back(val);
    return true;
}
ArgsManager::ArgsManager()