new MathConst type: make π, e, and γ instances.

This makes BigInt(2)*pi work as one would want it to. It's limited
though and doesn't try to do anything fancy or symbolic beyond that.
We could add a big function that converts integers to BigInts, and
floats and MathConsts to BigFloats.
MathConst: improve interactions with complex and imaginary values.
big: big(x) turns x into an appropriate high-precision version.
MathConst: factor constant-related stuff into its own source file.