Move focus_ position update into handleMapBrowserEvent

Otherwise, the position is only updated on keyboard or mouse wheel events.
Follow-up improvements for #897

* Interaction is no goog.Disposable any more.
* Permanent cleanup during selection instead of disposeInternal.
* Moved selectionLayers creation outside feature loop.
* Maintain selectedFeatures and unselectedFeatures only for
  layers that have a setRenderIntent method.
Limit feature exports
Use ol.Coordinate instead of ol.geom.Vertex
Rename ol.geom.VertexArray to ol.CoordinateArray
Add missing provide and require for ol.geom
instanceof check to avoid ducktyping
Do not delete from oldFeatureMap
Add extra requires (see #958)
Export ol.Collection#getArray
Add overlay-related methods to ol.Map
Remove map from OverlayOptions
Merge pull request #945 from ahocevar/select-followup

Follow-up improvements for #897
Merge pull request #953 from elemoine/overlay

Make ol.Overlay consistent with ol.control.Control
Merge pull request #933 from fredj/focus

Move focus_ position update into handleMapBrowserEvent
Add doc for ol.Collection#getArray
Merge pull request #940 from elemoine/getarray

Export ol.Collection#getArray
Merge pull request #957 from tschaub/use-coordinate

Use ol.Coordinate instead of ol.geom.Vertex.
Change touchmove and touchstart listened element to 'document'

As for the mouse events, this allows to drag, zoom or rotate the map
with pointer(s) who moved outside of the viewport.
Only consider touch events to compute ol.interaction.Touch.targetTouches