When trying to build arm64-apple-iso, the build fell over
strdup, as the arm64-apple-ios build did not fall into darwin_HOST_OS,
and would need ios_HOST_OS.
This diff tries to clean up PosixSource.h, instead of layering another
define on top.
As we use strnlen in sources that include PosixSource.h, and strnlen
is defined in POSIX.1-2008, the _POSIX_C_SOURCE and _XOPEN_SOURCE
are increased accordingly.
Furthermore the _DARWIN_C_SOURCE (required for u_char, etc. used in
sysctl.h) define is moved into OSThreads.h alongside a similar ifdef