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)
Update tests to fit the new API
Merge pull request #54 from justinabrahms/reporter-liskov-refactor

Update reporters to use less shared state.