Add new sparse matmul performance tracking test

Existing test for sparse matrix-matrix multiplication is not very representative
call _init() in modules at init time. closes #1268
Tweaks for cross compiling from Cygwin to MinGW

* Cygwin versions of MinGW compilers put standard libraries in /bin, not /lib
* Blas and Lapack should be in build_shlibdir
* Don't use wine for Cygwin to MinGW cross compile
* New cygpath_w helper function to convert Cygwin paths to Windows-style so MinGW-compiled
executables can understand them
* Use cygpath_w for system image file locations
Fix doc example of @test_approx_eq_eps precision argument 

`e-2` means Euler's number minus two. I guess original author wanted to mean `10^-2`
fix #5966

showcompact() should always be compact; confine the output limit stuff to
array printing
Merge branch 'master' of github.com:JuliaLang/julia into jb/module_init
rename _init to __init__
better module initialization order: init inner modules after outer modules
are complete and initialized.
Merge pull request #5968 from cdsousa/patch-1

Fix doc example of @test_approx_eq_eps precision argument
fix #5963
Revert "fix #5963"

This reverts commit df0921b50ca50a27fe8495935810105c41476043.
fix #5963
Merge pull request #5922 from tkelman/patch-1

Add new sparse matmul performance tracking test
Merge pull request #5965 from tkelman/cygwin-to-mingw-cross

RFC: Allow Cygwin to MinGW cross compilation
Redirect stderr from which

This avoids `which: no fetch in ($PATH)` messages when downloading dependencies. These can get pretty long.
Add quotes and an informative error message

Since [ -x  ] is true, but [ -x "" ] is false
Alternative fix for #3567

As discussed in #5825, this puts handles that should be preserved into a global ObjectIdDict. The only slightly sketchy parts are the idle and async worker invocations which I'll have to think about (we don't have a good interface for them yet, really), but it's not as simple as just putting a wait() based interface on top, since people are using them for synchronization with threaded C libraries.
Alternative fix for #3567

As discussed in #5825, this puts handles that should be preserved into a global ObjectIdDict. The only slightly sketchy parts are the idle and async worker invocations which I'll have to think about (we don't have a good interface for them yet, really), but it's not as simple as just putting a wait() based interface on top, since people are using them for synchronization with threaded C libraries.
Fix two small bugs in process handling with new libuv.

First, I forgot the finalizer (my bad). The second issue is slightly
more subtle which is that we now destroy process objects earlier, so
libuv might actually get a SIGCHLD. We have a custom patch that
disables signals while in fork, which also happended to block SIGCHLD
because it was in the wrong place. The associated libuv commit fixes
that.
Fix EPIPE error