Change domains to use Set instead of map[Rat]bool.

Iterating through the range of keys of a map in golang is
non-deterministic. The keys are purposely iterated through randomly.
However, this was causing the MCVFS (Most-Constrained Variable First
Search) to have different results each time it was run. Therefore, we
added the Set data type in the previous commits which imposes a strict
ordering on the elements. Iteration through a Set is deterministic and
monotone. We have replaced domains using the map[Rat]bool to be a Set of
Rats so that we can have deterministic MCVFS results on every run.