More tedious tweaks for exceptions

In a datatype, no two constructors of the same type can have the same
name. This is not the case for exception constructors. Two different
constructors in different modules can share a name. The elaborator used
to take care of that by ensuring that the module path was always part of
the name. Without that, we have to keep the module path with the part of
the constructor environment that says that a particular constructor is
bound to an exception.