Update reporters to use less shared state.

Pass arguments to functions when that's the only place they're used.
Don't assume that class attributes exist in super classes if you don't
set them (eg Liskov Subtitution)