Fix use-after-free in WebstoreInstaller

Crashes are still occurring in WebstoreInstaller::StartDownload(),
even after several attempts to fix them.

Diagnosis:
The installer holds a pointer to contents::NavigationController.
This object is owned by contents::WebContents, which can be deleted
before the StartDownload() callback is invoked.

Fix:
Store a pointer to contents::WebContents. Inherit from 
content::WebContentsObserver, which will clear the pointer when
the WebContents are destroyed.

BUG=165634

Review URL: https://codereview.chromium.org/138803012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250865 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 250865