Add --max-time option to set time limits

This option could certainly come in handy, for example, to deal with infinite
loops.  If the process exceeds this time, it is sent a signal (the first may
not be SIGKILL, and so can be dealt with, but the ones after will be).
Modified execute-process to take this into account; it now throws an
exception if the process terminates due to a signal, and this exception
gives the number that caused it to terminate.