Feature/a in phas a distinct style

I wouldn't do that. I'm thinking of renaming TestCluster to TestAggregator. That's a better fit for what it does. TestCluster doesn't contain any tests, it only does two things: Say what tests it needs, and when it's given test results it can build an assertion base on those results. It doesn't get called until all tests are done so I don't see why it would need to publish events.

I would suggest that, now that the ES6 team has decided on it's Promise object, to start moving Quail to that, instead of a custom event API. You can polyfill it for now, but there's no reason to reinvent the wheel here, I think.