Split UTF functions from String8/16

Split out all the UTF-8/16/32 handling code from String8/16 to its own
file to allow better reuse of code.

Change-Id: If9ce63920edc75472c38da4adce0d13cda9ad2f7
diff --git a/rsFont.cpp b/rsFont.cpp
index 33b0f51..96e350d 100644
--- a/rsFont.cpp
+++ b/rsFont.cpp
@@ -174,7 +174,7 @@
 
     while (glyphsLeft > 0) {
 
-        int32_t utfChar = utf32_at(text, len, index, &nextIndex);
+        int32_t utfChar = utf32_from_utf8_at(text, len, index, &nextIndex);
 
         // Reached the end of the string or encountered
         if (utfChar < 0) {