Formatter registration
Created by: JonRowe
Reworking formatter registration, this moves the configuration of formatters out of RSpec.configuration
into a new object RSpec::Formatters::Collection
and now all formatters are registered as listeners according to their interface specification.
This is step 1 in my proposed refactoring for formatters. Step 2 is converting all the notifications into value objects (I've made a start on this) so we can then extract common logic about notifications into those rather than having massive base classes.
I still need to work on the LegacyFormatter, but I wanted to get some review on this whilst I do that.