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.

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.

Close #37
Console report enhancements

Added:
- print remaining tests countdown (per-browser and total)
- print browser name and version
- print test elapsed time
- mark long-running tests (over configurable threshold) with a different color
- logging of connected and better logging of disconnected slaves

Remaining tests countdown can be slightly imprecise because we decrement at task
finish but print on test finish, but it's good enough to not complicate
the code unnecessarily.

Close #13. Close #29.
Log unfinished tests instead of undispatched

We used to log the number of tests that have not started yet instead of
ones that were finished, which led to incorrect numbers especially when
using multiple browsers at the same time.

Now this is corrected both in the console and Attester status page.
Log campaign elapsed time at the end