Fix layering of ApplicationCacheHost

This patch moves the frame-walking code from Chromium's WebApplicationCacheHostImpl
into WebCore::ApplicationCacheHost, which breaks that class's dependency on the
public/web API.

That allows blink::WebApplicationCacheHost{,Client} to move to public/platform.
With the addition of a factory method on FrameLoaderClient, this also allos
ApplicationCacheHost.cpp to move next to its header file in core/loader/appcache.

ApplicationCacheHostInternal.h remains for now, but in the long run it can probably
be removed (though the ownership semantics aren't completely clear to me).

BUG=343272

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

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