[ScreenOrientation] Hide ScreenOrientationProvider inside WebContentsImpl.

This CL hides ScreenOrientationProvider inside WebContentsImpl,
because it is not so necessary to be content public.
Instead this CL:
  - Exposes SetScreenOrientationDelegate() on web_contents.h
  - Exposes OnScreenOrientationChange() on web_contents_impl.h

Then it would be quite clear what the touchpoints of ScreenOrientationProvider
with the rest of the browser process are, which makes it all the easier to
analyze them (and to avoid those touchpoints growing larger as we try to
eliminate them).

BUG=678545
TEST=content_unittests
[email protected]

Review-Url: https://codereview.chromium.org/2682643002
Cr-Commit-Position: refs/heads/master@{#449288}
diff --git a/ash/content/screen_orientation_delegate_chromeos.cc b/ash/content/screen_orientation_delegate_chromeos.cc
index ab9a4c2..76243b2 100644
--- a/ash/content/screen_orientation_delegate_chromeos.cc
+++ b/ash/content/screen_orientation_delegate_chromeos.cc
@@ -7,17 +7,16 @@
 #include "ash/common/wm_window.h"
 #include "ash/display/screen_orientation_controller_chromeos.h"
 #include "ash/shell.h"
-#include "content/public/browser/screen_orientation_provider.h"
 #include "content/public/browser/web_contents.h"
 
 namespace ash {
 
 ScreenOrientationDelegateChromeos::ScreenOrientationDelegateChromeos() {
-  content::ScreenOrientationProvider::SetDelegate(this);
+  content::WebContents::SetScreenOrientationDelegate(this);
 }
 
 ScreenOrientationDelegateChromeos::~ScreenOrientationDelegateChromeos() {
-  content::ScreenOrientationProvider::SetDelegate(nullptr);
+  content::WebContents::SetScreenOrientationDelegate(nullptr);
 }
 
 bool ScreenOrientationDelegateChromeos::FullScreenRequired(