Move handling of DraggableRegionsChanged notification from "view" to "frame".

This CL:
- Moves AnnotatedRegionsChanged method from blink::ChromeClient to
  blink::LocalFrameClient
- Moves DraggableRegionsChanged method from blink::WebViewClient to
  blink::WebFrameClient
- Move DraggableRegionsChanged method from content::RenderViewObserver
  to content::RenderFrameObserver
- Moves handling of DraggableRegionsChanged from
  extensions::ExtensionHelper (a content::RenderViewObserver) to
  extensions::ExtensionFrameHelper (a content::RenderFrameObserver).
- Tweaks AppWindowContentsImpl::OnMessageReceived so that it is aware
  which RenderFrameHost sent the ExtensionHostMsg_UpdateDraggableRegions
  IPC.

These changes mean that the originating local frame is no longer lost in
the middle of the notification chain (and that hopefully/speculatively
we will no longer crash by trying to look into a wrong, remote frame
as observed in bug https://crbug.com/645472).

BUG=645472

Review-Url: https://codereview.chromium.org/2929493003
Cr-Commit-Position: refs/heads/master@{#479195}
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index 61e8867..f9efacf 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -668,6 +668,7 @@
       blink::WebSetSinkIdCallbacks* web_callbacks) override;
   blink::WebPageVisibilityState VisibilityState() const override;
   std::unique_ptr<blink::WebURLLoader> CreateURLLoader() override;
+  void DraggableRegionsChanged() override;
 
   // WebFrameSerializerClient implementation:
   void DidSerializeDataForFrame(