add timeout option to core.system(), etc (SOFTWARE-646)
add timeout option to core.system(), etc (SOFTWARE-646)

In core, add a per-command timeout option to __run_command(), system(),
and check_system().

This will remain unused by default; you have to explicitly pass
timeout=NN[.NN] to core.system() or core.check_system() in your tests if
you want to use it.

a TERM signal is used by default to kill the process group of
subprocesses that exceed their timeout.  Use timeout_signal='KILL', etc,
if some other signal is desired.

efajardo/osg-test,efajardo/osg-test