### Godot version

3.5.stable, 4 rc1

### System information

MacOS 12.6.1, Linux not sure which

### Issue description

Command line args set in ProjectSettings `editor/main_run_args` are split at spaces, even if they are quoted. 
This only occurs if started from the editor and only on Mac and Linux.

The only difference in 4 is that the main scene is also a command line arg (`res://Main.tscn`) for some reason.. That might be another bug

Here is a workaround to splice the args back together.
```gdscript
# Reverses a bug in Godot, which splits input strings at spaces even if they are quoted
# e.g. --arg="some value" becomes [ --arg="some, value" ]
# this only occurs with args in that format. --arg "some value" is safe
static func fix_godot_cmdline_args_string_space_splitting(args: PoolStringArray) -> PoolStringArray:
	if not OS.has_feature("editor"): # only happens in editor builds
		return args
	if OS.has_feature("Windows"): # windows is unaffected
		return args

	var fixed_args := PoolStringArray([])
	var fixed_arg := ""
	# if we encounter an argument that contains [code]=[/code] followed by a quote,
	# or an argument that starts with a quote, take all following args and
	# concatenate them into one, until we find the closing quote
	for arg in args:
		var arg_string := arg as String
		if '="' in arg_string or '="' in fixed_arg or \
				arg_string.begins_with('"') or fixed_arg.begins_with('"'):
			if not fixed_arg == "":
				fixed_arg += " "
			fixed_arg += arg_string
			if arg_string.ends_with('"'):
				fixed_args.append(fixed_arg.trim_prefix(" "))
				fixed_arg = ""
				continue
		# same thing for single quotes
		elif "='" in arg_string or "='" in fixed_arg \
				or arg_string.begins_with("'") or fixed_arg.begins_with("'"):
			if not fixed_arg == "":
				fixed_arg += " "
			fixed_arg += arg_string
			if arg_string.ends_with("'"):
				fixed_args.append(fixed_arg.trim_prefix(" "))
				fixed_arg = ""
				continue

		else:
			fixed_args.append(arg_string)

	return fixed_args
```

### Steps to reproduce

Set some args with spaces in ProjectSettings `editor/main_run_args`. 
E.g. `--arg="string with spaces" --second-arg 'with spaces'`

print them out
```gdscript
func _ready() -> void:
	print(OS.get_cmdline_args())
	for arg in OS.get_cmdline_args():
		printt("single arg:", arg)

	print("---")
	var fixed_args := fix_godot_cmdline_args_string_space_splitting(OS.get_cmdline_args())
	print(fixed_args)
	for arg in fixed_args:
		printt("fixed arg:", arg)
```
result
```
[--arg="string, with, spaces", --second-arg, 'with, spaces']
single arg:	--arg="string
single arg:	with
single arg:	spaces"
single arg:	--second-arg
single arg:	'with
single arg:	spaces'
---
[--arg="string with spaces", --second-arg, 'with spaces']
fixed arg:	--arg="string with spaces"
fixed arg:	--second-arg
fixed arg:	'with spaces'

```

### Minimal reproduction project

Works in 3.5 and 4rc1 (the run args just have to be set again after conversion)
[CmdLineArgSplitReproduction.zip](https://github.com/godotengine/godot/files/10691343/CmdLineArgSplitReproduction.zip)

}
bool EditorRun::has_child_process(OS::ProcessID p_pid) const {
	for (const OS::ProcessID &E : pids) {
		if (E == p_pid) {
			return true;
		}
	}
	return false;
}
void EditorRun::stop_child_process(OS::ProcessID p_pid) {
	if (has_child_process(p_pid)) {
		OS::get_singleton()->kill(p_pid);
		pids.erase(p_pid);
	}
}
void EditorRun::stop() {
	if (status != STATUS_STOP && pids.size() > 0) {
		for (const OS::ProcessID &E : pids) {
			OS::get_singleton()->kill(E);
		}
		pids.clear();
	}
	status = STATUS_STOP;
	running_scene = "";
}
EditorRun::EditorRun() {
	status = STATUS_STOP;
	running_scene = "";
}