SkStream: remove some WStream functions from public api

move functions to SkStringPriv.h

also add SkStrAppendU32Hex() function, and re-write
SkString::insertHex() to use SkStrAppendU32Hex.

add unit tests.

Change-Id: Ieda98fb4106db71565b607e593713a91a5ddd892
Reviewed-on: https://skia-review.googlesource.com/151986
Reviewed-by: Cary Clark <caryclark@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/src/utils/SkJSON.cpp b/src/utils/SkJSON.cpp
index cb7704c..8f7d67d 100644
--- a/src/utils/SkJSON.cpp
+++ b/src/utils/SkJSON.cpp
@@ -9,6 +9,7 @@
 
 #include "SkMalloc.h"
 #include "SkStream.h"
+#include "SkStreamPriv.h"
 #include "SkString.h"
 
 #include <cmath>
@@ -777,7 +778,7 @@
         stream->writeText(*v.as<BoolValue>() ? "true" : "false");
         break;
     case Value::Type::kNumber:
-        stream->writeScalarAsText(*v.as<NumberValue>());
+        SkWStreamWriteScalarAsText(stream, *v.as<NumberValue>());
         break;
     case Value::Type::kString:
         stream->writeText("\"");