Turning @tschaub's FeatureAgent into an event extension.

See http://trac.osgeo.org/openlayers/browser/sandbox/tschaub/select/lib/OpenLayers/FeatureAgent.js. Tests are still missing, but this already works on mobile devices and with Canvas layers. Another possible task would be to make the SelectFeature control use this instead of the Feature handler - then we could get rid of the RootContainer layer for multiple layer selection.
Move some touch logic to the `handler` base class.
Avoid breaking the "OpenLayers.String.format" execution when searching for an attribute in an undefined object.
don't try to update the matrix in setMap since it's too early and done later in moveTo
add index to details
#2938: [patch] Comparason type like with null (property not present)
#2940 Add relations support for OSM format
#2940 add shared
add indexDistance to LineString distanceTo Point
don't sort
rm loop brake
add version
rm end white space
Adding unit tests.
Better mousewheel/touchpad behavior for zooming

The navigation control gets better defaults, and the MouseWheel handler
gets a new maxDelta option, which can be used to avoid huge zoom level
jumps on heavy wheel/pad movements.
Use translate3d and translate where available.
Turn on GPU support for all children of the layerContainerDiv

This seems to remove all kinds of flicker and jumpiness, and to me it feels
also like it makes panning on slow mobile devices smoother.
Adding docs, removing console.log
No backbuffer removal delay needed with 3d enabled
Giving the last tile time to render

The loadend event of an image is fired before the image is rendered. For
standard 256x256 tiles, this does not matter. But for singleTile layers on
large screens, rendering time needs to be considered. So we add a delay
that depends on the tile size. TODO: make the denominator configurable.