Fix the activity leak in the Browser.

The IconListenerSet inside CombinedBookmarkHistoryActivity is static. So when
the activity is destroyed, it needs to remove its listener to avoid leak.
diff --git a/src/com/android/browser/MostVisitedActivity.java b/src/com/android/browser/MostVisitedActivity.java
index 704ee27..83342a1 100644
--- a/src/com/android/browser/MostVisitedActivity.java
+++ b/src/com/android/browser/MostVisitedActivity.java
@@ -42,12 +42,15 @@
 
     private MyAdapter   mAdapter;
 
+    // Instance of IconReceiver
+    private final IconReceiver mIconReceiver = new IconReceiver();
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mAdapter = new MyAdapter();
         CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
-                .addListener(new IconReceiver());
+                .addListener(mIconReceiver);
         setListAdapter(mAdapter);
         ListView list = getListView();
         LayoutInflater factory = LayoutInflater.from(this);
@@ -57,6 +60,13 @@
         list.setEmptyView(v);
     }
 
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        CombinedBookmarkHistoryActivity.getIconListenerSet(getContentResolver())
+               .removeListener(mIconReceiver);
+    }
+
     private class IconReceiver implements IconListener {
         public void onReceivedIcon(String url, Bitmap icon) {
             setListAdapter(mAdapter);