Define _POSIX_C_SOURCE to get access to strdup() and strndup().

`strdup` and `strndup` are only available in C libraries with `_GNU_SOURCE`, `_BSD_SOURCE`, `_POSIX_C_SOURCE>=200809L` or `_XOPEN_SOURCE=700`.

Since `_GNU_SOURCE` and `_BSD_SOURCE` are vendor specific and `_XOPEN_SOURCE=700` represents POSIX.2008 plus extensions, defining `_POSIX_C_SOURCE` to `200809L` is the most portable way to access `strdup` and `strndup`.