Changed on-request job running to shell out instead of doing a loop.
- Also factored out a new wfShellExecDisabled() function.
- This will keep the process in the background if possible to avoid killing site performance, especially with slow jobs.
- This also keep fatals and uncatcheable exceptions from hitting the user.
- If $wgPhpCli is not set to an actual path or safe mode is on, then the old code will be used.