Better `--fork` implementation.

The parent process and shutdown logic using `multiprocessing` made no sense,
as `multiprocessing`'s interface is really designed around short-lived tasks,
not around tasks that consume a process' whole existence. Replaced it with
some unix, instead; this means `--fork` now only works on POSIX-ish OSes.

2.0 or bust, this breaks `--fork` on Windows.