Refactored reporting to a dedicated reporter

Allowed easy improving of output and the ignoring of messages we don't
care about. Next step would be to inject a new reporter object into the
mapper to provide custom output if we end up putting a better UI onto
it.