Use builtins in <math.h>
The main intended benefit of this change is that it allows libc++ to be
used with a C library that doesn't support long double.
Some platforms do not support the C library long double math functions.
For example Newlib .
A possible additional benefit may be better performance due to inlining.
That was the motivation for using builtins in math.h previously
Also change <complex> to use the overloaded atan2 instead of atan2l so
that the atan2 from libc++'s <math.h> is used.
The behaviour of AIX long double is unusual so it is excluded from this