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.
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
Remove unnecessary success check
Adjust language code from 'pt-br' to 'pt-BR'

Portuguese Brazilian translations were not loaded due to this.
Account for the fact that touch devices have no mouse and therefore no last mouse position.  When "undo" is invoked in a mobile app, sync the meaningless last-mouse-position point to the last point in the digitized linestring so there is visible feedback that something has been undone.  Otherwise the last-mouse-position point is left at the point of the last tap on the map, which is unfortunately the location of the vertex that has just been undone, incorrectly implying that the vertex is still there.
Also trigger beforefeaturemodified event in non-standalone mode

d2a32d5 accidently changed the number of assertions in the
test_selectFeature function, so the change in behavior that no
beforefeaturemodified event is called any more in non-standalone mode got
unnoticed: Before unhacking ModifyFeature, the SelectFeature control
called the beforeSelectFeature method directly. Now, without a built-in
SelectFeature control, we need to call it from the selectFeature method in
both standalone and non-standalone mode.
Merge pull request #931 from ahocevar/beforefeaturemodified

Also trigger beforefeaturemodified event in non-standalone mode. r=@bartvde
Documentation improvement (fixes #932)
Another documentation improvement for #932.
Yet another documentation improvement for #932.

Now it should be clear that the map's changelayer event is triggered
whenever the layer's actual visibility (i.e. visible to the user) changes.
Attempt to handle IE >= 10 pointer events

Using the same technique as Leaflet, this relays MSPointer events to touch
events. Using the simulator, I can verify that even pinch-zoom works with
this change, but the visual experience is a bit jumpy. Would be great if
people could test this on physical touch devices and see how it looks/feels
there.
Making buttons work

Thanks @gregersrygg for testing. With this change, zoom and other buttons
(e.g. editing toolbar) work in touch mode.
LayerSwitcher: Simplified checkRedraw() method
New example showing how to switch projections
Release notes for GPU, animated zoom and ModifyFeature control