Added "strict" versions of the limited complex contexts that don't
allow operations within the real and imaginary parts. Also cleaned up
some of the code and fixed a few situations that had been missed
Note that in strict mode, e^(pi i) is accepted, but e^(pi/2 i) is
not. Should that be changed? It would be possible to make a context
in which a*e^(b*pi/c i) is accepted.