Changed DVList to Valuations (a std::map<std::string, int>), and CVList to VariableList (a std::set<std::string>).
The advantage is that set and map have their keys sorted. In this way, when I convert to PPL::Variable,
I am sure that the ordering is maintained across all possible strange modifications.
The main difference between Valuations and VariableList is that the first one have a value/valuation,
the second one is that they simply have a name.

I also changed a few functions to make them more clear/consistent.

This was a preparatory step for implementing assignment to discrete variables.