Remove Page dependency from Settings

I added an Observer pattern to Settings
which we'll use once Settings is passed to the Frames directly
instead of Page being the only observer and passing messages
along to frames itself.

For now Page is the only SettingsObserver.  I did that to prevent
having to change any of the code I was moving from Settings to Page.

I'll come back with a second patch and make Frame a SettingsObserver
instead of Page.

I couldn't remove the last reference to Page* in Settings without
changing autogenerated inspector code I wasn't familiar with
so I filed crbug.com/327476 to handle the last bit of cleanup.
Until then there is a really ugly hack whereby we ask the
SettingsObserver to provide a page.

I also removed a Timer used for avoiding a crash in Mac WebView
when clients had overriden -[WebView dealloc].  Obviously we don't
have that problem in blink anymore.

BUG=305811
R=abarth@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@163808 bbb929c8-8fbe-4397-9dbb-9b2b20218538