Started even more tedious refactoring.

Changed the structure of the cenv (and it's tenvC counterpart). It used
to be something like ((modN option * conN) * 'a) list and now it's
structure more closely resembles the module structure of the program
(modN * (conN * 'a) list) list * (conN * 'a) list

The idea is the the operations that put constructors into modules will
be much easier to reason about then before, where ad hoc code traversed
the cenv and changed the domain.