Change the return type of WTF::bind() to |OwnPtr<Function>|

Previously WTF::bind() returns |Function|, but this causes implicit temporary objects and copies of |Function|, resulting potential thread-safe issues.
This CL changes the return type of WTF::bind() to |OwnPtr<Function>|, thus removing such temporary objects and making the ownership of |Function| explicit.

- Change the return type of WTF::bind().
- Replace |const Function&| in parameter with |PassOwnPtr<Function>|.
- Replace |Function| with |OwnPtr<Function>|.
- Add |.release()| and replace |f()| with |(*f)()|.
- Other types of changes are in |callOnMainThread| and NetworkStateNotifierTest.cpp.
(|Function| appears in typedef'ed names such as Closure.)

Also this CL makes |FunctionBase| non-copyable to prevent unintended copies of |Function|.

BUG=390851

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

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