Refactor the 'with many sample names' system for variant reporting

- Have the interpreters return a field name in the format
  <sample_name>_<field_name> for interpreters that use many samples and return
  the same fields for each (in contrast to interpreters that take values of
  many samples and do calculations on them, e.g. min coverage observed)
- Add helper functions for the new format and have the available_fields,
  headers, and available_fields_dict use those
- The header fields in the FullReporter and available fields from its
  interpreters now match up and can be automatically validated.
- Future complex reporters can utilize the new system to also have headers and
  interpreter available_fields match up.
- New module Reporter/WithHeaderAndSampleNames.pm that inherits from
  Reporter/WithHeader because the available_field_dicts needs to know about the samples
- New test reporter and interpreter Framework/Test/WithHeaderAndSampleNamesReporter.pm and
  Framework/Test/WithManySampleNamesInterpreter.pm that implement the new system
- Various test files to test the new functionality
sync additional qc metrics from lims (AUE-269)