Merge pull request #1311 from RosettaCommons/roccomoretti/cpp_centroid2
Make centroid mode ResidueTypes from fullatom ones
Add a utility function to make a centroid mode ResidueType from a fullatom one, using the heuristics from molfile_to_params.py. This is basically translating the atom types from fullatom ones to centroid ones, and getting rid of non-polar hydrogens. (No "centroid" atoms are added.)
I've also hooked in actual usage into Rosetta to automatically use it in the following cases:
* If you use -extra_res_mol or -extra_res_mmCIF, the provided molecules will be loaded for both fullatom and centroid ResidueTypeSets.
* If you use -load_PDB_components, the components will also be used to generate centroid mode ResidueTypes.
* When running switch_to_residue_type_set() and converting from fullatom to centroid, if there isn't a good centroid ResidueType already in the ResidueTypeSet, one will be generated from the FullAtom type and added to the PoseResidueTypeSet. (But only as a fall-back case - this only affects cases which would utility_exit previously.)
A limitation of the current implementation is that it does not work on polymeric residues. (Or at least polymeric residues with apolar hydrogens.)
A fair number of cosmetic integration test changes, as enabling centroid-mode PDB components changes tracer output - no current integration tests should have appreciable changes, though.