ScriptPromise should check the constructor paraemter.

ScriptPromise::ScriptPromise(v8::Handle<v8::Value>, v8::Isolate*) expects
that the first parameter is a Promise object, but no one checks that.
This CL fixes that.

Rename ScriptPromise::ScriptPromise(ScriptValue) to ScriptPromise::cast to
avoid the confusion caused by the diferrent behaviors with a non-Promise parameter.

BUG=347047

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

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