Simplify CSS code in custom-controls example

By using the ol-control css class and a button instead of a link.
Add support for wrapping the build in UMD syntax.
Unconditionally draw Replay's
Add a renderBuffer option to ol.layer.Vector
Add handle*Event options to ol.interaction.Pointer

More specifically: handleDownEvent, handleDragEvent, handleMoveEvent, and handleUpEvent.
Make ol.interaction.Pointer call handleMoveEvent
Make shouldStopEvent default to the identity func
Add ol.Map#getTargetElement

ol.Map#getTarget returns an element or a string, depending on what was passed to setTarget. This commit adds a getTargetElement method that always returns an Element.
Add ol.geom.flat.transform.translate
Add ol.geom.Geometry#translate
Add a drag-feature example

This example also demonstrates how to implement a custom interaction that inherits from ol.interaction.Pointer.
Change "recreate batch" strategy

Only recreate batch when the (buffered) rendered extent contains the **buffered** viewport extent.
Merge pull request #3048 from elemoine/drag-features

Add a drag-features example
Merge pull request #3061 from elemoine/render-bug2

Add a renderBuffer option to ol.layer.Vector
Merge pull request #3038 from acanimal/master

Update attribution CSS #2803
Merge pull request #3039 from tschaub/umd

Support for UMD builds.
Update pre-release version
Merge pull request #3068 from tschaub/pre-3

Update pre-release version.
Define goog and assign to global

When concatenating the Closure Library, base.js creates a new `goog` object if there is not already one in scope.  Later, `goog.global` is assigned the value of `this`.  Calls to `goog.provide` create "namespace" objects by assigning to `goog.global`.  To ensure that `goog` is the same as `goog.global.goog`, we need to create a new `goog` object in the scope of base.js and assign it to `this.goog`.
Merge pull request #3070 from tschaub/umd-debug

Define goog and assign to global when generating UMD debug builds.