An assignment holds current values of all the variables of a model. These classes decouple
an assignment of variables to their values from the model. This is needed for any kind of
parallel computations, or in general, to be able to hold multiple different assignments in memory.