Always wait for subtasks unless already failed

While it is valuable to be able to define tasks without
a pass criteria which can assume to be passed when they
are not failing, this probably does not quite make sense
when this task has subtasks, as it is expected that a
task will never pass unless its subtasks already passed.
Correct this behavior, and no longer ignore the state of
subtasks when there is a fail but no pass key defined.
If the task has not failed, but the subtasks have not
passed, then show the task as WAITING just as we would
if there were both a pass and a fail key defined.

Change-Id: Icf428ebe6099bc03fdb42942c88aee21b787dd76
4 files changed