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
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')`).