Use per-animation function modules

Currently the animation functions share the same module, namely ol.animation. We do differently for ol.control.defaults and ol.interaction.defaults, with ol.control.defaults and ol.interaction.defaults module. This commit replaces the ol.animation module by four modules, one for each animation function.

This makes things more consistent, and will make it possible to use the @exportFunction annotation for the exporting of the animation functions.
Make ol.Collection#extend return this

This to be able to do this:

new ol.Map({
  controls: ol.control.defaults().extend([new MyControl()]),
  ...
})
Export ol.Collection#extend
Use ol.Collection#extend in examples

This commit changes the examples to using ol.control.defaults().extend to extend the collection of controls. This is in preparation for a future commit that will remove the 2nd argument to ol.control.defaults. The same is done for ol.interaction.defaults.
Remove 2nd argument to ol.control.defaults
Remove 2nd arg to ol.interaction.defaults
Use @exportFunction to export ol.control.defaults
Use @exportFunction to export ol.interaction.defaults
Use @exportFunction to export animation functions