Add namespace handling in attribute values

Previously, you could only reference namespace prefixes in attribute names:

<View xmlns:appcompat="http://schemas.android.com/apk/res/android.support.v7.appcompat"
      appcompat:name="hey"
      ...

Now you can also reference them in resource names within an attribute value:

      ...
      android:text="@appcompat:string/confirm"
      ...

Which will be treated as "@android.support.v7.appcompat:string/confirm".

Change-Id: Ib076e867a990c80cf877a704eb77cd1ef0b23b52
diff --git a/tools/aapt2/Linker.h b/tools/aapt2/Linker.h
index 9b911b7..d34e487 100644
--- a/tools/aapt2/Linker.h
+++ b/tools/aapt2/Linker.h
@@ -52,9 +52,9 @@
 public:
     /**
      * Create a Linker for the given resource table with the sources available in
-     * Resolver. Resolver should contain the ResourceTable as a source too.
+     * IResolver. IResolver should contain the ResourceTable as a source too.
      */
-    Linker(std::shared_ptr<ResourceTable> table, std::shared_ptr<Resolver> resolver);
+    Linker(std::shared_ptr<ResourceTable> table, std::shared_ptr<IResolver> resolver);
 
     Linker(const Linker&) = delete;
 
@@ -117,7 +117,7 @@
     friend ::std::ostream& operator<<(::std::ostream&, const Node&);
 
     std::shared_ptr<ResourceTable> mTable;
-    std::shared_ptr<Resolver> mResolver;
+    std::shared_ptr<IResolver> mResolver;
     std::map<ResourceNameRef, std::vector<Node>> mGraph;
     std::map<ResourceName, std::vector<SourceLine>> mUnresolvedSymbols;
     bool mError;