Extract Report class

Report is the new superclass of Gold - counts totals of all interesting
stuff, while gold uses these totals to count differences.
Distinct private and public methods in Diff
Refactor of Diff for more flexibility

The goal is to add Reports on their own.
Add report method to Diff
Add big unit test to handle Diff#report
Call report on each report in Diff#report
Fixes HashContainable#merge_reports

Might need another fix, next tests will show.
Improve HashContainable#merge_reports
Take multiple reports in merge_reports
Unfocus