Replace third_party/gif: Preflight changes

Something is breaking client code in unexpected ways.  Let's try this
piecemeal.

  - skia_libgifcodec_path gn var. Default is
    third_party/externals/libgifcodec.  Anfroid framework uses
    third_party/libgifcodec.

  - skia_use_libgifcodec gn var; defaults to !skia_use_wuffs.  Allow
    disabling both codecs.

  - GN template("optional"): add public_include_dirs, similar to
    public_defines.

  - SK_USE_LIBGIFCODEC, ifdef for skia_use_libgifcodec.

  - SkCodec.cpp: use SK_USE_LIBGIFCODEC

Original CL:  https://review.skia.org/254582

Cq-Include-Trybots: luci.skia.skia.primary:Build-Debian9-Clang-x86-devrel-Android_SKQP
Bug: skia:9654
Change-Id: I70561f5f945656065e4b318d5fff505961fb0b6b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/255578
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 4d6bfab..c60ec4e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -211,6 +211,9 @@
       if (defined(invoker.public_configs)) {
         configs = invoker.public_configs
       }
+      if (defined(invoker.public_include_dirs)) {
+        include_dirs = invoker.public_include_dirs
+      }
     }
     source_set(target_name) {
       check_includes = false
@@ -608,7 +611,8 @@
 }
 
 optional("gif") {
-  enabled = !skia_use_wuffs
+  enabled = !skia_use_wuffs && skia_use_libgifcodec
+  public_defines = [ "SK_USE_LIBGIFCODEC" ]
   sources = [
     "src/codec/SkGifCodec.cpp",
     "third_party/gif/SkGifImageReader.cpp",