To prevent memory leaks, we use v8::Function::New instead of v8::FunctionTemplate.

Currently each createClosure call creates a new v8::FunctionTemplate,
but its lifetime is the same as the current context.
As a result, when Promise creates a closure for chaining,
it creates a new v8::FunctionTemplate and it is not GC-ed until the context is destroyed.

v8::Function::New is added to solve this[1]. The lifetime of the function created by this API
is not the same as the current context lifetime. When the function reference becomes unreachable,
the function will be GC-ed correctly.

NOTE: Current Promises implementation can chain `then` only 20 times, this is filed in 272656.

[1]: https://chromiumcodereview.appspot.com/23561007/

BUG=272579

Review URL: https://chromiumcodereview.appspot.com/23088007

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