Change how we fork so we don't fork while threads are present.
Change how we fork so we don't fork while threads are present.

This fixes a couple things.

1) A flake that was common in debug builds where the
PerfettoCmdlineTest.*Trigger* tests would fail. The cause was we started
the service in a separate thread, which would hold a lock to fprintf
when we forked, but that would deadlock the forked child process and
then we would never progress until the test timed out.

2) In the PerfettoCmdlineTest.*Trigger* we exec twice causing a data
race when touching |stderr_| member variable of the test. This refactor
fixes this by making people explicitly provide the string the stderr
should be saved into.

Bug: 137770927
Change-Id: Ib75ab148de01115f6de05d914a2092dd7be6fe06
google/perfetto,google/perfetto,google/perfetto,google/perfetto,google/perfetto,google/perfetto,google/perfetto,google/perfetto