Instead of providing animation functions, provide the namespace

This follows the convention in the Closure Library of providing either namespace objects (where the property starts with a lowercase letter), constructors (where the property starts with an uppercase letter), or enums (all uppercase properties, only one instance of this in the closure library).
Export namespaces or constructors but not functions
Handle namespace provides

It looks like the convention in the Closure Library is to export either namespaces (starting with lowercase), constructors (starting with uppercase), or enums (all uppercase, one instance).  I don't see any places where the Closure Library exports a function that is not a constructor.

Following the same convention, when we export `ol.foo`, it means we are making available function properties of the `ol.foo` object that start with a lowercase letter.
Removing unnecessary require
Export ol.control namespace instead of ol.control.defaults function
Export ol.interaction namespace instead of the defaults function
Export namespaces instead of functions in generated code
Unused imports
More comprehensive docs for ol.DeviceOrientation

Adding an extended class description of DeviceOrientation along with
some additional details in the property accessors.
Update based on comments

This removes @class and fixes the return type pattern to match the
project standard.  There are a couple of minor changes to the text as
well.
Use markdown format for inline links
Merge pull request #978 from pagameba/doc-deviceorientation

More comprehensive docs for ol.DeviceOrientation
Add "WebGL only" note to bind-input example
Merge pull request #985 from ebelo/patch-1

add webgl only info
Bind to layergroup instead of layers
Merge pull request #981 from fredj/side-by-side

Side-by-side example broken
Export ol.*.SUPPORTED symbols
Better user notification if WebGL is not supported
Merge pull request #990 from fredj/examples_no_webgl

Better user notification if WebGL is not supported
Merge pull request #958 from tschaub/requires

Make the `build/check-requires-timestamp` target work with namespace provides in cases where the namespace provide isn't required by a module that provides constructors or other objects within that namespace.  This may seem a bit odd, but if I want to provide `foo.bar.Bam` it isn't strictly necessary that my module require `foo.bar`.

To make this build target work, we stick with the following convention (used in the Closure Library):

 * If you want to make a function available via `goog.require`, use `goog.provide` to provide the object of which the function is a member (e.g. to make the `foo.bar.baz` function available, use `goog.provide('foo.bar')`).