[process] Fix process-unref-race.exe (#4144)
* [process] Rename MonoProcess to Process as it's not public anymore
* [process] Replace setting process->pid = 0 by process->signalled = TRUE
* [process] Remove processes_mutex lock when unrefing process->handle
We do not need to synchronize it here because we do not modify `processes`, and the only other place where we access process->handle is before adding it to `processes`.
* [process] Fix race condition
Without this memory barrier `process->next = processes` and `processes = process` could be reordered, and when accessing `processes` in mono_sigchld_signal_handler, we could observe a NULL processes->next. This would make us not find a pid in `processes`, and because of the posix API, we would never mark this process as exited.
This would trigger a hang in `process-unref-race.exe` test.
Thank you to @kumpera for the help figuring this out!