Formatter registration (WIP)

Starting the formatter rework, so far this moves the registration requirement into formatters, open to feedback on how this works. I'm half tempted to move the setup phase into config itself (which is where formatters are passed into the reporter). I also need to make a start on the LegacyFormatter adaptor. Opening PR for early feedback.