Merge pull request #3409 from RosettaCommons/roccomoretti/ResidueIndexDescription_update
Rework how ResidueIndexDescription works.
This attempts to make ResidueIndexDescription work a bit more like ResidueSelectors. In particular, instead of having a single, monolithic ResidueIndexDescription class, ResidueIndexDescription becomes an abstract base class which can have different subclass implementation. This allows us to potentially have RIDs like "the last residue in the pose", "the first residue of chain X", "the residue closest to the Pose's center of mass", "reference pose enabled selection designation". This should allow us to better defer things from parse time to apply time.
Note that this splits the current ResidueIndexDescription functionality into two classes ResidueIndexDescriptionPDB (which handles PDB-numbered selections) and ResidueIndexDescriptionPoseNum (which handles Pose-numbered selections). This does not seem to be an issue with the current (limited) use cases in the C++ code.