Add the ability to set limits on the child process.

This commit also refactors the code so that the process constructor merely
constructs a process---there is now an exec() that must be called on the
process to actually begin its execution. There is an overload,
exec(limits_t) that allows for the setting of process limits before the
call to execvp().