Blink: Implement DeviceOrientation using the Platform approach.

- Extract shared code into base classes DeviceMotionOrienationController and DeviceMotionOrientationDispatcher
- Add device orientation related classes to the module
- Add device orientation related classes in public/platform
- Add setDeviceMotionListener method to the Platform

BUG=261165

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

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