Derp. Fix script execution by testing fork() return value correctly.
Don't constantly spin on waitpid()

It seems I misunderstood how waitpid() works. It will not block if
there are no child processes, and will return with ENOCHILD. Instead
install a SIGCHLD handler and use a critical section and sigsuspend()
to block when no children are available.
Allow script paths to be overridden at compile time.
Let's call this 0.2