Merge pull request #3299 from RosettaCommons/jadolfbr/per_residue_metrics
Add support for Per-Residue SimpleMetrics
This PR adds two new types of `SimpleMetrics` and associated Code Templates:
- `PerResidueRealMetric`
- `PerResidueStringMetric`
These metrics return values for each residue that is masked by a `ResidueSelector` (which is specified in the base classes for a more consistent interface across all PerResidue metrics).
During their apply, they write a value for each residue using Rosetta (default) or PDB identification, as well as the SUM over all of the residues specified.
These have also been incorporated into the `SimpleMetricFilter` and `SimpleMetricFeaturesReporter` systems. For the filter, these can act as a `CompositeMetric`, or a user can filter on the Sum, acting as a normal SimpleMetric. For the Reporter, the data goes into their own per-residue table, with `resNum` as a foreign Key to aid in robust analysis.
Unit tests have been updated to test this new functionality. Existing SimpleMetrics such as the `SASAMetric`, `RMSDMetric`, and `EnergyMetric` will be converted to have their primary code as a `PerResidueRealMetric`.