Use AccountManager for details, handle INSERT cases.

Connected Sources to use AccountManager and inflate details
through registered sync adapters.  Each ContactsSource now
has a "level" of inflation, since deeper levels aren't
always needed right away.  Several places we're making
blocking calls into other processes that are tied to the UI
thread.  (This would take a large effort to fix.)

Turned most background Edit activity operations into
WeakAsyncTask, which helps finish background tasks while
preventing leaked Contexts.  This allows us to hold the UI
thread while saving, but release it just before ANR,
allowing the background operation to complete.

Enabled INSERT case, both from overall list and when already
editing an aggregate.  Finally, cleaned up the manifest
intent-filters to directly match authorities.
diff --git a/src/com/android/contacts/ContactsUtils.java b/src/com/android/contacts/ContactsUtils.java
index 9bc8f74..d2a01ca 100644
--- a/src/com/android/contacts/ContactsUtils.java
+++ b/src/com/android/contacts/ContactsUtils.java
@@ -28,6 +28,7 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.Intent;
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
@@ -218,4 +219,15 @@
         return null;
     }
 
+    public static Intent getPhotoPickIntent() {
+        Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
+        intent.setType("image/*");
+        intent.putExtra("crop", "true");
+        intent.putExtra("aspectX", 1);
+        intent.putExtra("aspectY", 1);
+        intent.putExtra("outputX", 96);
+        intent.putExtra("outputY", 96);
+        intent.putExtra("return-data", true);
+        return intent;
+    }
 }