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
doc: Use theme and extensions from JuliaDoc
improve html doc layout on mobile devices
doc/pdf: remove python module index
doc: fix templating and restore listpkg
doc: put sidebarintro back

The links are specific to the main doc, so this really does belong here. Also
move the translation links here.
doc: put TOC depth back to 1
doc: flip some generation settings off
doc: clear up some warnings from Sphinx
doc: update Makefile and README
Merge pull request #2891 from JuliaLang/jh/kahan-complex

Implements Kahan's versions of elementary complex functions
enable complex tests by default
use power_by_squaring for complex^integer. fixes #3246
rename denormal to subnormal and fix zero case. closes #3105