Show the saved picture for freed tabs.

Create a small class containing the data needed to display the saved or current
picture. For freed tabs, inflate the picture and use the saved state from
mSavedState. Reorganize populatePickerData to use the current top window or the
saved state depending on if the tab has been freed.

There was another bug where onNewPicture would update the wrong FakeWebView due
to ListViews reusing the same view. Have the tab manage the new picture and
invalidate the FakeWebView. When reusing the view, clear out the tab's
FakeWebView field.

Wipe all the picker data at the same time the ImageGrid and ImageAdapter are
cleared.
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 3f79a2d..9d5130f 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -2132,6 +2132,9 @@
                     .setVisibility(View.VISIBLE);
         }
         mContentView.removeView(mTabOverview);
+        // Clear all the data for tab picker so next time it will be
+        // recreated.
+        mTabControl.wipeAllPickerData();
         mTabOverview.clear();
         mTabOverview = null;
         mTabListener = null;
@@ -4194,10 +4197,6 @@
                 }
             }
 
-            // Clear all the data for tab picker so next time it will be
-            // recreated.
-            mTabControl.wipeAllPickerData();
-
             // NEW_TAB means that the "New Tab" cell was clicked on.
             if (index == ImageGrid.NEW_TAB) {
                 openTabAndShow(mSettings.getHomePage(), null, false, null);