[includes] Fixing includes of SkUnicode

While trying to do migration off the legacy G3 rules, I ran
into compilation errors due to missing includes in skunicode.

Thus, I enabled IWYU enforcement on that subdirectory (and
moved some implementations to SkUnicode.cpp file so IWYU can compile
something for SkUnicode.h).

While doing that, I found some other issues, e.g. ones related
to compiling on my Mac. A follow-up CL will need to change the
target we use for IWYU to be a cc_binary, not just a cc_library
so we can catch those linking errors.

Suggested reviewing order:
 - modules/skunicode/
 - src/utils/SkJSON*
 - Everything else.

Bug: skia:13052 b/237076898
Change-Id: I901ad84d6b664945123ca51ef47067b362f1acff
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/562101
Reviewed-by: Ben Wagner <bungeman@google.com>
17 files changed