App changes for account types with data sets.

This is primarily a replacement of the Android Account object in most
parts of the app with a new AccountWithDataSet object that extends
Account (by adding an additional attribute, the data set).

This also includes a major refactoring of the AccountTypeManager,
both to allow it to handle data sets and to allow for
non-sync-adapter packages to be referenced by the sync adapters for
an account and registered as sources of contact data. Attributes of
the sync adapter that would typically come from the authenticator
can be parsed out of the Contacts XML for these packages.

Bug 5077096

Change-Id: I88f311c64eae78c88e9999bff6f7de8538e62157
diff --git a/src/com/android/contacts/GroupMetaData.java b/src/com/android/contacts/GroupMetaData.java
index 39e955d..462ac4a 100644
--- a/src/com/android/contacts/GroupMetaData.java
+++ b/src/com/android/contacts/GroupMetaData.java
@@ -22,15 +22,17 @@
 public final class GroupMetaData {
     private String mAccountName;
     private String mAccountType;
+    private String mDataSet;
     private long mGroupId;
     private String mTitle;
     private boolean mDefaultGroup;
     private boolean mFavorites;
 
-    public GroupMetaData(String accountName, String accountType, long groupId, String title,
-            boolean defaultGroup, boolean favorites) {
+    public GroupMetaData(String accountName, String accountType, String dataSet, long groupId,
+            String title, boolean defaultGroup, boolean favorites) {
         this.mAccountName = accountName;
         this.mAccountType = accountType;
+        this.mDataSet = dataSet;
         this.mGroupId = groupId;
         this.mTitle = title;
         this.mDefaultGroup = defaultGroup;
@@ -45,6 +47,10 @@
         return mAccountType;
     }
 
+    public String getDataSet() {
+        return mDataSet;
+    }
+
     public long getGroupId() {
         return mGroupId;
     }