Fix up feature test macros

Move all feature test macros to the start of the file and check that
they aren't already defined or defined to a lower value than the file
needs.

Projects should be allowed to put these in CFLAGS and we shouldn't break
when they do.
diff --git a/src/core/support/log_linux.c b/src/core/support/log_linux.c
index a0307e1..a64faa9 100644
--- a/src/core/support/log_linux.c
+++ b/src/core/support/log_linux.c
@@ -31,8 +31,14 @@
  *
  */
 
+#ifndef _POSIX_SOURCE
 #define _POSIX_SOURCE
+#endif
+
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
+
 #include <grpc/support/port_platform.h>
 
 #ifdef GPR_LINUX