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
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
Update Brazilian Portuguese documentation link

For reasons similar to 096893a90.
Comment out test for balancing. Failing with LAPACK 3.5, because balancing has been improved.