Removed cgdoms from ConstraintGraph, wrote CSP.mostConstrainedVariable.

* Removed cgdoms from the ConstraintGraph type. Now its only component
is the variable -> (domain, Constraints) map. Its accessor function has
been renamed from cgvars to runCG.
* Dependent functions (esp. violatedConstraintsPresent) were rewritten
accordingly.
* Implemented the "most constrained variable"-heuristic in CSP.succ,
which now assigns values to the variable with smallest remaining domain.
* Added the following functions to ConstraintGraph: variableDomain,
variableDomains.
* Removed ConstraintGraph.switch.
* Removed the import of Data.Eq from ConstraintGraph.
Cleaned up CSP.
Added DCSP module for dynamic CSPs.