major refactoring of reports into separare classes

reports now live in separate classes: This brought up several issues
with buggy templates; lots of duplicate code has now been removed.

Still needs some view-testing, and maybe some unit-testing for the
service.