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 #3182, a subtle compile-time method matching bug
Merge pull request #3195 from staticfloat/master

Update libuv submodule pointer
Delegate elementwise operators to broadcast instead of overloading directly
Pull broadcast_T out of broadcast, gather with broadcast! in same dict
Improve typing for broadcasting ./ and .\, make e.g. Int ./ Int broadcasting
describe errata for MPFR. close #3204
fix #3153
Complete Pkg.Resolve modularity + fixes

fixes:
1) fix check_repository (also add julia_version argument)
2) fix pkgs/vers/deps gathering and filtering
Add broadcasting .^
fix #3196
add convert(::Type{Rational}, ::Integer). closes #3202