Clean up a few includes, introduce iwyu.

The current include-what-you-use with current clang is much less
noisy and more useful than it has been in the past. This change
introduces a few IWYU directives (which are helpful documentation for
humans as well) and fixes a few sets of includes.

Review URL: https://codereview.chromium.org/1207893002
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 1b0b12c..1a165a1 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -8,9 +8,11 @@
 #ifndef SkTypes_DEFINED
 #define SkTypes_DEFINED
 
+// IWYU pragma: begin_exports
 #include "SkPreConfig.h"
 #include "SkUserConfig.h"
 #include "SkPostConfig.h"
+#include <stddef.h>
 #include <stdint.h>
 #include <sys/types.h>
 
@@ -19,6 +21,10 @@
 #elif SK_CPU_SSE_LEVEL >= SK_CPU_SSE_LEVEL_SSE2
     #include <immintrin.h>
 #endif
+// IWYU pragma: end_exports
+
+#include <stdlib.h>
+#include <string.h>
 
 /** \file SkTypes.h
 */