add a Sys module and start to move some system constants out of base
(also closes #3331)
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.
exports: update to reflect changes to mathematical constants.
oops: export im (broken in last commit), print it as "im".
Merge pull request #3358 from JuliaLang/jn/sysinfo

add a Sys module and start to move some system constants out of base
use 'catalan' for Catalan's constant; this constant is too rarely used to assign 'G' to it
e^x should only be defined for scalar x; element-wise exponentiation should require .^
Merge pull request #3371 from stevengj/e_pow

e^x should only be defined for scalar x; element-wise exp should require e.^
parameterize HOSTCC, for use on machines like Centos5 which apparently don't have gcc
allow e^M to be used for expm(M) where M is a matrix.
Merge pull request #3367 from stevengj/catalan

only use 'catalan' for Catalan's constant, not 'G'
statistics: use select! for median!; export median! and quantile!

Using select! should make median computations much faster since we
only partially sort the input array. It would be nice to avoid the
second call to select! in the case of an even-length array, but it
isn't obvious how to do this. Perhaps we need a generalized select
that selects the values at a range of indices, in sorted order.
WINDOWS: always open ios files in binary mode
median!: allow checknan=false keyword to turn off NaN checking.
fix buffering bug in #3374
Merge branch 'master' of github.com:JuliaLang/julia
Added select!(v, r::Range1)
Update median calculation