Handle task timeout

This commit introduces a general timeout for tasks at server level.
Some test environment (mocha) handle timeout on the slave, however this might fail or not be available at all in other test types.

If the server doesn't receive a task finish from one of the slave it'll mark the task as error and go on with another one.

The task timeout is configurable from the command line with `--task-timeout` and by default is 5 minutes.