Some refactoring, to support possible values iterator in future
Adding clone operation to ClassPropertySetter
Adding PossibleValueIterator more strict definition