Implements Kahan's versions of elementary complex functions…

…paying particular attention to behavior near branch cuts.

Functions: sqrt, ^, log, asin, acos, atan, tanh, asinh, acosh, atanh
Includes also the ssqs to compute the mod-squared of a complex number scaled by a power of 2 to avoid overflow/underflow
Issues
- The ^ function fails tests so is disabled for now.
- The log function works only for `Complex{FloatingPoint}`. Explicitly casting `{T<:Integer}Complex{T}` to floating-point `Complex` causes tests to fail.

Ref: [Branch cuts for complex elementary functions](http://people.freebsd.org/~das/kahan86branch.pdf)
Correctly detects for both underflow and overflow in ssqs
Fixes type error in log
Corrects underflow check
Adds edge cases for all except atanh, atan
Reorders tests
Merge branch 'master' of github.com:JuliaLang/julia into jh/kahan-complex

Conflicts:
	base/complex.jl
complex function improvements; make test-complex pass
formatting fixes
Merge branch 'master' of github.com:JuliaLang/julia into jh/kahan-complex
Add Julia functions based on CSparse C code
Move functions based on CSparse to base/jlsparse.jl
fix #3234, empty function with keyword arguments
copy/peek for IOBuffer and some module introspection. Close #3229
Reexport bsxfun from Base for #3218
temporary workaround for #3232
not a real fix, but hides the problem, which is better than
nothing for now.
unsupport the mingw32 compiler. closes #3241
provide download link for 32-bit MinGW-w64
fix #3240, delay some pointerref and pointerset errors
Merge branch 'master' of github.com:JuliaLang/julia
Merge pull request #3236 from JuliaLang/db/jlsparse

Db/jlsparse
Merge pull request #2891 from JuliaLang/jh/kahan-complex

Implements Kahan's versions of elementary complex functions
enable complex tests by default