Fix #464: Separate test succeed state for different stages

Note that with this change, the `testListeners` key is scoped in the
stage and not the test tasks themselves for staged tests. The global
`testListeners` setting is still honored.

The same applies to the `testFilter` key for the staged `testQuick`
tasks. E.g. `fastOptStage::testQuick` depends on
`fastOptStage::testFilter` rather than `testQuick::testFilter`.