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.
Fix github issue 267 GPX: handling of desc attribute.
Fix http://trac.osgeo.org/openlayers/ticket/3554

Finally using Util.isElement and nothing else for cross-platform
compatibility according to elemoine's comments.

Tested on Chromium 18 Ubuntu 12.04.
8 tests fail (detailed: fail 9). List follows.

23:13:26 test_respectZoom: Google tests can't be run from localhost:8000
23:14:22 test_write_wmc_Layer: Safari has wierd behavior with getElementsByTagNameNS: the result is that we can't run these tests there. Patches welcome.
23:16:15 test_Layer_Google_constructor: Google tests can't be run from localhost:8000
23:16:15 test_clone: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_isBaseLayer: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_Translation_lonlat: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_Translation_pixel: Google tests can't be run from localhost:8000
23:16:15 test_Layer_destroy: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Goole_forwardMercator: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_overlay: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_isBaseLayer: Google tests can't be run from localhost:8000
23:16:15 test_Layer_Google_setGMapVisibility: Google tests can't be run from localhost:8000
23:20:13 test_Layer_MapServer_Reproject: Can't test google reprojection in Opera or Safari.
23:20:18 test_Layer_WMS_Reproject: Can't test google reprojection in Opera or Safari.
Avoid breaking the "OpenLayers.String.format" execution when searching for an attribute in an undefined object.
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.
Move detection of map procjection to merge function, check for successful response and fix tests.
Fix copyright date
Restore arguments parameter to make function future-proof
Restore layer alias variable
Restore layer alias variable