Make the embedder responsible for creating the WebFrame.

Previously, the WebViewImpl created the mainframe, and the WebFrameImpl created the child frames. This CL moves responsibility for creating all WebFrameImpls to the embedder.

WebFrames are now allocated using the create() factory method. The caller is responsible for ensuring WebFrame::close() is called to balance out the reference count.  This parallels the lifetime of WebView.

For the main frame, the embedder constructs the WebFrame first, and then provides the WebView a references to the main frame via the WebView::setMainFrame() method.

For child frames, the embedder provides the new WebFrame via WebFrameClient::createChildFrame().  The embedder is notified that the WebFrame is no longer needed via the WebFrameClient::frameDetached() call.

Because WebView no longer creates its own main frame, a WebViewHelper class has been added to reduce boilerplate in unittests.

Lastly, there is still some vestigial code left (all labeled with FIXMEs) to facilitate migration of embedders to the new lifetime semantics.  Those will be removed in a subsequent CL.

(https://codereview.chromium.org/23841002/ is the Chrome side of the CL)

BUG=245126

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

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