Add a drag-features example

This PR builds on https://github.com/openlayers/ol3/pull/3032 to add a "drag-features" example. The example can be tested at http://erilem.net/ol3/drag-features/examples/drag-features.html. 

The PR also

* adds `handleDownEvent`, `handleDragEvent`, `handleMoveEvent` and `handleUpEvent` options to `ol.interaction.Pointer`. In particular, these options make it possible to create "drag" type custom interactions.
* changes the default implementation of `shouldStopEvent`. This is to avoid adding another option (`shouldStopEvent` or similar) to `ol.interaction.Pointer`.
* adds an `ol.Map#getTargetElement` method. `getTarget` may return an `Element` or a `string`, depending on what was passed to `setTarget`. Using `getTargetElement` you are guaranteed to get an `Element` instance.
* adds `ol.geom.flat.transform.translate` and `ol.geom.Geometry#translate` for translating geometries.

Please review.

Fixes #2947.
As discussed with @tschaub I'll change this function to implement the translation operation in that function instead of relying on transform2D.