Add stopOnFailure option

When stopOnFailure is true, upon completion of all tests, any test that
failed will cause the whole task to fail. This can be set to false when
you always want other tasks in the queue to be executed.

This is effectively implements --force at a task-specific level, where
it is common to want to continue even when tests fail.

Certain PhantomJS error conditions have also been changed to raise test
failures rather than exiting the task immediately.