GN/ICU cleanup

For targets that depend on ICU, only define if `skia_use_icu` is set.

Move declare_args/skia_use_icu into skia.gni.  Other variables that need
to work like that can move there later.

icu/BUILD.gn defines SK_USING_THIRD_PARTY_ICU if needed.
SkShaper_harfbuzz.cpp SkPDFSubsetFont.cpp respects
SK_USING_THIRD_PARTY_ICU when calling SkLoadICU().

sfntly/BUILD.gn, harfbuzz/BUILD.gn, icu/icu.gni uses $_src variable to
reduce verbosity.   icu/icu.gni adds more headersto sources.

Change-Id: I9e000b9b19902d9f5c0c64e989bf42466aa8a299
Reviewed-on: https://skia-review.googlesource.com/c/189304
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
diff --git a/modules/skshaper/BUILD.gn b/modules/skshaper/BUILD.gn
index 422ee95..3452110 100644
--- a/modules/skshaper/BUILD.gn
+++ b/modules/skshaper/BUILD.gn
@@ -7,6 +7,8 @@
   skia_enable_skshaper = true
 }
 
+import("../../gn/skia.gni")
+
 config("public_config") {
   if (skia_enable_skshaper) {
     include_dirs = [ "include" ]
@@ -21,7 +23,7 @@
     deps = [
       "../..:skia",
     ]
-    if (target_cpu == "wasm") {
+    if (target_cpu == "wasm" || !skia_use_icu) {
       sources = skia_shaper_primitive_sources
     } else {
       sources = skia_shaper_harfbuzz_sources