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.
MathConst: `@math_const` macro to setup BigFloat-based constants.
MathConst: add Catalan's constant, `eu` as alias for Euler's e.

Defining big(::MathConst) earlier allows using it various places.
Assert that the value of a MathConst converted to BigFloat is of
type BigFloat.
MathConst: add φ or `golden` for the Golden ratio -- (1+sqrt(5))/2.
Rename darray2.jl to darray.jl
Merge pull request #3316 from JuliaLang/sk/mathconst

MathConst: π, e, γ, G and φ
fix rationalize test failure due to MathConst merge.
add a Sys module and start to move some system constants out of base
(also closes #3331)
deps: fix '-with-gmp' typo
fix BUILD_MACHINE on darwin, or when CC != clang

Fixes "libgmp not found or uses a different ABI (including static vs
shared)" error.
better line number info for functions with keyword args. fixes #3357
Add Python dependency to README.windows
slightly more robust jldownload script

* Set wget retries to 0, like curl [fixes #3337].
* Check that curl/wget actually work, not just exist.
* Set some timeouts, to fail faster.
jldownload: use local basename, not url, for mirror url
Merge branch 'master' of github.com:JuliaLang/julia
fix #3144
fix BUILD_MACHINE architecture detection for mac and cross-build (reverts b038d4c3cf7220738a8f7c14c559fe34f4470d4c)