Reland "Move SkFrontBufferedStream into Android-only dir"

This reverts commit b25f30348bfee972b509fd4a13a0de99e89caa6a.

Bug: skia:10154

Original message:
> Add client_utils for code that is specifically for a single client.
> Move SkFrontBufferedStream into its android/ subdir. Rename the class
> to android::skia::FrontBufferedStream. Temporarily leave in
> SkFrontBufferedStream until Android updates to the new API.
>
> Add a new optional target for client_utils/android. It is built in dev
> builds for testing, and when building for the Android framework.

Deliberately do not include client_utils in Google3, since the whole
point is to only include where necessary.

Change-Id: I48938c56aabb98e1ed820240d43ffcd0fdce7956
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/285104
Commit-Queue: Leon Scroggins <scroggo@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/BUILD.gn b/BUILD.gn
index 9ee6c8b..38f7e6e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -272,6 +272,14 @@
   }
 }
 
+optional("android_utils") {
+  enabled = skia_enable_android_utils
+
+  public = [ "client_utils/android/FrontBufferedStream.h" ]
+  public_defines = [ "SK_ENABLE_ANDROID_UTILS" ]
+  sources = [ "client_utils/android/FrontBufferedStream.cpp" ]
+}
+
 optional("fontmgr_android") {
   enabled = skia_enable_fontmgr_android
 
@@ -859,6 +867,7 @@
   ]
 
   deps = [
+    ":android_utils",
     ":arm64",
     ":armv7",
     ":avx",
@@ -1143,6 +1152,7 @@
 # Targets guarded by skia_enable_tools may use //third_party freely.
 if (skia_enable_tools) {
   skia_public_includes = [
+    "client_utils/android",
     "include/android",
     "include/atlastext",
     "include/c",