Add drag and drop from AllAppsView (to the workspace).

Also had to fix AppInfoCache to load the icon as a drawable, which I had broken
when I made AllAppsView use the icons as power of two textures.
diff --git a/src/com/android/launcher2/AppInfoCache.java b/src/com/android/launcher2/AppInfoCache.java
index 9e87a47..65ae570 100644
--- a/src/com/android/launcher2/AppInfoCache.java
+++ b/src/com/android/launcher2/AppInfoCache.java
@@ -130,12 +130,14 @@
         ApplicationInfo cached;
         synchronized (sCache) {
             cached = sCache.get(componentName);
-        }
-
-        if (cached != null) {
-            return cached.icon;
-        } else {
-            return resolveInfo.activityInfo.loadIcon(packageManager);
+            if (cached != null) {
+                if (cached.icon == null) {
+                    cached.icon = resolveInfo.activityInfo.loadIcon(packageManager);
+                }
+                return cached.icon;
+            } else {
+                return resolveInfo.activityInfo.loadIcon(packageManager);
+            }
         }
     }