Clear window script NPObject before disposing v8 context.

|ScriptController::clearScriptObjects()| calls |disposeUnderlyingV8Object|, which relies on the fact that context is alive.
However, the context should be detached from |V8WindowShell::clearForNavigation| calls, so |clearScriptObjects()| must be done in prior.

Currently, there is a bug in v8 that |v8::Context::DetachGlobal()| does not detach the global and context completely, so the current code works, but it will not after https://codereview.chromium.org/397953009/ land.

BUG=364377

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

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