feat #1331 Easily replace page configuration helper in page engine

This commit allows to extend the PageEngine class in order to change the page configuration helper.

Close #1331
Fixed an issue of widgets not working on some tactile devices.

On tactile devices, browsers use touch events, and can simulate mouse events as well.

Those mouse events are required for some of our widgets to work. This is notably the case with the `mousedown` event, and for the widgets:

- `Select`
- `RadioButton`
- `CheckBox`

However, the simulation of events does not always work as expected, and in practice the browser Safari on iOS does it only for clickable elements. This means that this doesn't work out of the box for `span` elements for instance, yet that's what we use in a lot of widgets.

Fortunately Apple provides a simple workaround in its documentation there: https://developer.apple.com/library/IOS/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW3

That's what has been implemented. Potential further issues related to the fact that now the concerned widgets are "unblocked" are not tackled by this commit.

Apart from that, this commit fixes a few typos found in the code while investigating.

Closes #1330
fix Select loses focus state when an item is selected
fix #1334 Updating noder-js version.
Updating atpackager version.
feat #1335 Range Calendar widget

This commit adds the Range Calendar widget.

It also refactors some skin properties used in the calendar,
which breaks compatibility with existing skins.

close #1335
compat Backward compatibility with calendar skin properties

This commit restores backward compatibility with calendar skin properties
after the change introduced in commit d3358a5d61519b5cd8d5d5bb10c926e372b161b4.

This commit is intended to be reverted in one of the next non backward
compatible releases.
feat #1292 Adding the ATValidateTemplates visitor in AT build and easypackage task

This commit adds the ATValidateTemplates visitor in the build and
as a configurable option in the easypackage task, so that templates
can be strictly validated during the build. This is especially useful
to find extra commas in JSON configuration objects inside templates.

This commit also adds some missing semicolons in the javascript code
generated from templates, as this is required for the ATValidateTemplates
visitor to accept templates.

close #1292
feat #1336 fullWidth property for TextField widget

Adding a new property to the textfield widget. This property allows to display the textfield as 100% width of its container.
doc #1337 add test showing handling of IO timeouts and 404s

This is mostly for documentation purposes for future reference
(no code change inside the framework).

Close #1337
Switching to attester 2.0.1.
Adding "npm run attest" script to easily run individual tests.

Here is an example:

npm run attest -- test.aria.AriaTest --browser=firefox

Any test specified in the command line will be run.
If no browser is specified, phantomjs is used.
fix #1340 compatibility with bing map

The Bing map javascript intercepts the events on body and prevents their propagation, so it is very important to be sure that the AT delegation system catches all the events at body level (i.e. not window)
close #1340
fix Error tooltip not displayed in a datepicker
fix #1332 Fixes a bug in FF that closes the select widget when scrolling too fast
fix #1343 Fixing focus issues with the RangeCalendar on IE.

This fixes the test failures with the RangeCalendar tests on IE.
fix Vertical align tests fails with attester
fix #1347 Increase MAC tests timeout for all browsers