Merge pull request #4445 from RosettaCommons/roccomoretti/packer_palette_restype_tests
Delay ResidueTypeSet usage in PackerPalettes
For the vHTS protocols, the introduction of PackerPalettes caused crashes due to the way they were implemented with respect to the protocols::ligand_docking::HighResDocker mover.
This PR attempts to fix that issue by deferring the use of the ResidueTypeSet until the Palette is actually used (rather than encoding it at Palette creation time). A side benefit of this is that this makes PackerPalettes better compatible with mixed-mode Poses (e.g. where some residues are fullatom and some are centroid.)
The way this was accomplished is by removing the RTS member value from the PackerPalette object, and instead passing it as a function parameter from the ResidueLevelTask object. This does mean that the creation of the base type list is deferred until the RLT, and thus happens multiple times (though can happen for different RTS for a single Palette, and the results for a single RTS is cached for faster lookup).
On a subclass level, this means that the new get_base_residue_types() member function is the key function to overload, taking the place of the previous set_residue_type_set() member function.
This still only works if the type being packed/designed is in the PoseRTS. Testing this actually revealed an issue where the pose loading functionality is clearing the pose without properly (re)setting the PoseRTS, when applicable. This PR also contains a patch to fix that.