feat #1280: Selenium Java Robot layer

This commit contains a new implementation of the aria.jsunit.IRobot
interface to use the Selenium Java Robot.

The Selenium Java Robot tool is available here:
https://github.com/ariatemplates/selenium-java-robot

If the browser was launched with the Selenium Java Robot tool, it will
be detected automatically by the aria.jsunit.Robot class and the
corresponding implementation of the interface will be used.

close #1280
fix #1281 fixing random test failures with Slider and DoubleSlider

This commit makes aria.utils.dragdrop.Drag a static dependency of
the Slider and DoubleSlider widgets. It does not make sense to have
it as a dynamic dependency, as it is always needed, as soon as those
widgets are used. Moreover, using a dynamic dependency makes their test
fail randomly, as the dependency may not have been completely loaded
when the test starts, leading to errors.
fix #1282 fixing keystrokes-related failing tests on Mac OS

This commit fixes 2 failing tests on Mac OS, due to different keystrokes
on this operating system.
fix #1274 Select widget with 'options' and 'value' binded.

If the options list changed, the value is no longer considered and
the first one is always selected
fix #1283 fixing scrollbars-related failing tests on Mac OS

This commit fixes 2 failing tests on Mac OS. On this operating system,
scroll bars do not take any space (they are hidden most of the time, and
even when they are displayed, they are displayed on top of the content
without changing the layout).
fix #1285 improving the precision of Drag utility and slider widgets

This commit changes the strategy to compute the new position while
dragging a DOM element with the drag utility.

Previously, the new position was computed by using the difference of
coordinates between the previous mouse move event and the current mouse
move event, thus accumulating rounding errors at each mouse move event.
Because of this, the distance between the mouse and the dragged element
could increase or decrease significantly while dragging the element.

Now, the new position is computed by using the difference of
coordinates between the start of the drag (which is a fixed reference)
and the current mouse move event, thus making sure the relative position
between the mouse and the dragged element stays the same until the mouse
is released.
feat #1223 font properties for AT widget's label and input fields

This PR allows users to provide font properties for widgets labels and
input fields through AT skin
close #1223
fix #1287  navigation keymap inconsistency

when an escape keystroke is registered before a dialog is opened, the navigation keymap contains 2 objects, and when the dialog is closed, the wrong one is removed.
This fix introduces a comparison between the "modal" property that is used in the dialog keymap configuration, so that the right object is deleted and the user defined one is still handled by its callback.

closes #1287
Link widget disable bind change
Fix #1286 The NaN misinterpret as Number