refactor error/warning reporting

Refactor error/warning reporting to prepare making it configurable.

review by @gkossakowski (on hangout?)
The only solution, I think, is to remove all of these and always indirect through reporter (or through typer.context)