1. Implement C++ RelativePositionConstraint
2. Add a method evalNames to PositionConstraint, so now the logic is cleaner. The non-abstract class in PositionConstraint only needs to take care of all the position name, and do not need to worry which position is actually included in the final constraint