MathConst special behavior: e^x = exp(x)

Based on suggestion by @stevengj:

https://github.com/JuliaLang/julia/commit/43f9731f37022792e95319ff6fea5258a0e75927#commitcomment-3399288

One problem here is that e^1 != e:

	julia> e^1 == e
	false

If you convert to float instead of calling exp, it's fine:

	julia> float(e)^1 == e
	true

This seems more like a problem with the exp function than with this
particular special behavior, but it is a bit of an issue.
show MathConsts in the form "π = 3.1415926535897..."

Suggested by @pao:

https://github.com/JuliaLang/julia/issues/3294#issuecomment-19331571

I lop off the last couple of digits of the constant since otherwise
the last digits might be rounded, making the assertion that those
are the leading digits of the number incorrect. I tried writing this
as "π ≈ 3.141592653589793" but that just didn't look as good. There
is technically still a possibility that rounding would cause this to
be wrong, but that's not the case for any of our constants.
MathConst: use an eval loop to define MathConst binary operations.