Improving the spike formatter:

* refactor to use a single SourcePrinter
* print feature
* try to print location (though indent is still to do)
* show backgrounds (even if they're appearing out of sequence)
Fix broken colours in the tests

For some reason, running this feature in-process turns the colours off
half way through the test run. No time to investigate, so I'm just going
to spawn it instead.
Try using a debugging formatter