Extract method 'hash_repr' and 'columns_for_header'
Split __planned_output_errors__ into two parts
VariantReporting subsystem works on files not just builds

The ResourceProvider replaces the build, at least conceptually.  Running
on a build will consist of generating a ResourceProvider first, and then
running the subsystem.  This commit is a regression in that sense,
because running on a build has been disabled for now.

The ReportGeneratorWrapper goes away entirely, since translations can be
provided by the ResourceProvider.

Expert commands accept files instead of objects for the most part, and
when they need objects from the ResourceProvider, they are given ids
only.