AAPT2: Remove usage of u16string

For legacy reasons, we kept around the use of UTF-16 internally
in AAPT2. We don't need this and this CL removes all instances of
std::u16string and StringPiece16. The only places still needed
are when interacting with the ResTable APIs that only operate in
UTF16.

Change-Id: I492475b84bb9014fa13bf992cff447ee7a5fe588
diff --git a/tools/aapt2/xml/XmlUtil.cpp b/tools/aapt2/xml/XmlUtil.cpp
index ab9f544..0e9d005 100644
--- a/tools/aapt2/xml/XmlUtil.cpp
+++ b/tools/aapt2/xml/XmlUtil.cpp
@@ -23,19 +23,25 @@
 namespace aapt {
 namespace xml {
 
-Maybe<ExtractedPackage> extractPackageFromNamespace(const std::u16string& namespaceUri) {
-    if (util::stringStartsWith<char16_t>(namespaceUri, kSchemaPublicPrefix)) {
-        StringPiece16 schemaPrefix = kSchemaPublicPrefix;
-        StringPiece16 package = namespaceUri;
+std::string buildPackageNamespace(const StringPiece& package) {
+    std::string result = kSchemaPublicPrefix;
+    result.append(package.data(), package.size());
+    return result;
+}
+
+Maybe<ExtractedPackage> extractPackageFromNamespace(const std::string& namespaceUri) {
+    if (util::stringStartsWith(namespaceUri, kSchemaPublicPrefix)) {
+        StringPiece schemaPrefix = kSchemaPublicPrefix;
+        StringPiece package = namespaceUri;
         package = package.substr(schemaPrefix.size(), package.size() - schemaPrefix.size());
         if (package.empty()) {
             return {};
         }
         return ExtractedPackage{ package.toString(), false /* isPrivate */ };
 
-    } else if (util::stringStartsWith<char16_t>(namespaceUri, kSchemaPrivatePrefix)) {
-        StringPiece16 schemaPrefix = kSchemaPrivatePrefix;
-        StringPiece16 package = namespaceUri;
+    } else if (util::stringStartsWith(namespaceUri, kSchemaPrivatePrefix)) {
+        StringPiece schemaPrefix = kSchemaPrivatePrefix;
+        StringPiece package = namespaceUri;
         package = package.substr(schemaPrefix.size(), package.size() - schemaPrefix.size());
         if (package.empty()) {
             return {};
@@ -43,13 +49,13 @@
         return ExtractedPackage{ package.toString(), true /* isPrivate */ };
 
     } else if (namespaceUri == kSchemaAuto) {
-        return ExtractedPackage{ std::u16string(), true /* isPrivate */ };
+        return ExtractedPackage{ std::string(), true /* isPrivate */ };
     }
     return {};
 }
 
 void transformReferenceFromNamespace(IPackageDeclStack* declStack,
-                                     const StringPiece16& localPackage, Reference* inRef) {
+                                     const StringPiece& localPackage, Reference* inRef) {
     if (inRef->name) {
         if (Maybe<ExtractedPackage> transformedPackage =
                    declStack->transformPackageAlias(inRef->name.value().package, localPackage)) {