Document middle
merge the two versions of randmtzig_{randn,exprnd}

It seems to improve slightly (by about 5%) randn() methods working with the
global RNG, which now match the speed of those working with a (non-global)
MersenneTwister instance.
Add a note on return type in documentation of middle
Type promotion for keys and values for Dict merge

Discussed in #8877.
Fix #8871

Mapreduce didn't work with `Range{BigInt}`, because the length wasn't a
`Int`, because of potential overflow. This patch just converts the
length to Int with a checked conversion, because a mapreduce on larger
arrays will probably never finish anyway.

Also fix some broken test of prod
add precision(Float64), etc. (closes #8881)
add RoundingMode argument to Float32/64 ctors

Closes #8845.
hook up the check-libgit2 target

dont run it by default, it fails in MSYS2 because of missing SSL
and symlinks

also switch from cmake --build . to recursive make, so -j works

and allow setting CMAKE location from environment variable
Merge pull request #8883 from ninjin/dict_merge

RFC: Type promotion for keys and values for Dict merge
Merge pull request #8893 from JuliaLang/bigint_prod

Better fix for #8871
remove deprecation warnings in collection test
fix deprecated dict syntax in pkg tests
make #8784 work on Mac
export deprecation alias for String
Fix test for 32 bit

The test added in #8893 shouldn't use typemax(Int), but typemax(Int64)
check for and error early with cygwin or msys-target compilers

these are incapable of building libuv, but can build everything else
Document Cygwin-to-MinGW cross compilation

Replace old-and-busted MSYS1 instructions, no one should be using MSYS1 any more.
add a call to env in the git troubleshooting alias
set XC_HOST to `uname -m`-w64-mingw32 by default for cygwin builds
Fix inv(Hermitian) and let it return a Hermitian type. Make fallback \ call factorize and add factorize noops for types that can already be considered factorized. Add dummy A_ldiv_B! to cholmod.jl to make fallback \ work.