Inheritable IO redirection, tighter CPU allocation, and a miscelanious test fix

I replaced the IO redirection with OS-level IO redirection that changes the actual file descriptors #1 and #2, which means the redirection will be inherited by any child processes that a job spawns.

I also changed the max CPU limiting code for Parasol so that you can actually have that many jobs running. Previously limiting to 1 CPU would mean that no jobs ran, 2 CPUs would run only one job, etc.

Finally, I changed a test job tree directory name that I had forgotten to change when I did the setup.py stuff. All the tests still pass.