TaskRunner: make multiprocessing timeout command-line configurable (DM-601)

The default timeout for multiprocessing is 9999 sec, which may be
exceeded for long-running processes; we need a way to easily configure
this value.  Added a 'process-timeout' entry to the ArgumentParser (the
name itself can be configured through a class variable in the TaskRunner),
and have the TaskRunner get the value from that if available, otherwise
use TaskRunner.TIMEOUT as before.
TaskRunner: catch exceptions that don't inherit from Exception (DM-601)

Exceptions that don't inherit from the class Exception (e.g., SystemExit)
aren't caught by multiprocessing, so they need to be explicitly caught
and re-cast into something multiprocessing will recognise.
TaskRunner: make timeout name consistent
Merge branch 'tickets/DM-601'