Well, previously, formatters that subclassed `BaseFormatter` had access to the list of failed examples from an of the notification methods.  Now they only have accessed in the notification methods that receive a `FailedExamplesNotification` object.  If we go with a single `ExamplesNotification` class, then any of the notification methods that deal with collections of examples can get access a list of failed examples.  This is more flexible.

That said, it does require us to re-do some computation by iterating over the examples to find the failed ones.  I'm not very concerned about the perf of one loop over all examples, but I also don't feel very strongly about this.  It seems like if we want to change to my approach later it would probably not be a breaking change, right?