Sneak preview: refactor error/warning reporting

Using the PR validator to check I didn't break sbt/IDE. Feedback welcome, but I'll probably hold off a bit on this.
Confirming that this obviates scrolling right in the diff view on github:
```
reporter.warning(NoPosition, f"there were $size $what warning(s); re-run with ${option.name} for details"
```