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
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')`).
Stricter type def for ol.ImageUrlFunctionType
Stricter type def for ol.TileUrlFunctionType
Be stricter with types in BingMaps
Be stricter with types in WMTS
Remove unneeded FIXME
Merge pull request #992 from elemoine/urlfunction

Stricter with types