Implement and use locale-independent strtod function

It is called strtod_c and internally uses strtod_l on OSX and Linux.
On Windows a function derived from the python source code is used
that replaces the decimal delimiter by the locale one and calls the
standard strtod function.
correct handling of integer values for sinpi, as per IEEE-754 2008
make sinpi,cospi,sind,cosd type stable for Float32
add tests for signed zeros
add tests for type stability
doc: organize index into sections
Merge pull request #5988 from tknopp/strtod

RFC: Locale-independent strtod
add type assertions to test
no need to check for domain error when raising to an integer power
add calls to jl_exception_clear to interface functions with try blocks

this prevents swallowed exceptions from appearing as errors when you
call jl_exception_occurred.
use LLVM intrinsic for sqrt. helps #6112
ispow2: much more efficient implementationon modern machines.

The other approach was useful for old systems that didn't have any
popcnt instruction, but modern CPUs – in particular x86 – have it.
This is also much faster for BigInts since it can be computed with-
out creating any new BigInt objects.
Merge pull request #6149 from simonbyrne/sinpi

correct handling of integer values for sinpi, as per IEEE-754 2008
patch up error behavior of sqrt after 244ec92f55bb5433898c5a859a0cb452aafa1673
export jl_null and jl_subtype. fixes #6156
fix #6161
Correct singular/plural mismatch
Merge pull request #6166 from catawbasam/patch-1

Correct singular/plural mismatch