Make reporter notify formatters only when they respond_to? messages

As proposed in #841, in order to allow us to make more changes to formatters without breaking the protocol (and without requiring people to inherit our classes) let's send messages to the formatters only when they `respond_to?` that message.

Upside(s):
  * We can add more notificiations to reporter any time we like
  * People can implement only the messages they care about
  * People won't have to inherit from our base class if they only want a formatter on one message

Downside(s):
  * Extra conditional
  * Potentially making messier code (if we add too many additional messages)

This will also allow us to refactor #841,#878 to be included sooner rather than later.