fix #1071 fixing auto-escaping issue in calendar widget

This commit fixes the issue introduced by commit
6584f219fad148129fa6de28cc434e1303405f9d in the calendar
template.
Auto-escaping now takes into account the case insensitivity of modifiers.

Modifiers are all defined with a lower case name in the framework, but the invokation of one of them can be done by specifying a name with any case: this name gets converted to lower case just before retrieving the actual modifier.

This means that users can write the name of the modifiers with any case, and the automatic escaping feature didn't handle that, thinking that escaping was not controlled by the user when the modifier was used with a case different that the hard-coded one.

Closes #1072
fix #1073 Missing datepicker/calendar test case

No test was done by opening the calendar and clicking on a date.
This one checks it
Automatic escaping is now done at the end.

Now if the associated modifier is not present at the end, it is simply added behind the scenes (in a mode where it escapes for all contexts).

This is more consistent, logical, since the final output is ensured to be escaped This is the safest solution. It also greatly simplifies the code.

Tests have been refactored, and additional modifiers have been tested.

Closes #1077
1.5.1
fix #1076 onblur called too often by MAC

onblur custom event is called every time an element inside the MAC is blurred.
Same thing happens for the onfocus custom event.
doc aria.core.JsonValidator.getBean documentation fix

Close #1066
refactor #1079 Move MAC tests

Multiautocomplete is another widget, not a subfeature or Autocomplete

Close #1079
fix #1083 tooltip issue when there are quotes in the string
feat set/removeDataset methods

This commit introduces two methods to manipulate dataset attributes in HTML element:

* `aria.utils.Html.setDataset`: it allows to specify an object containing key-value pairs of dataset attributes. It uses the keys to add the right attribute, and the values to assign the correct values to them.
* `aria.utils.Html.removeDataset`: it allows to specify an object whose keys will be used to remove dataset attributes.

This feature is compatible with the implementation of `aria.utils.Html.buildAttributeList`, which does not convert camelcase attributes to their dashed counterpart. However, this lack of processing is deprecated (#499). Backward compatible code will have to be removed also from the code added by this commit.
fix #1063 section attributes binding improvement

This commit introduces the following fixes:
- when section attributes are bound to the data model, changes in `dataset` and `classList` are now taken into account
- the binding can now be recursive or non-recursive
- when the className of the section container is changed via the section wrapper classList, the data model is correctly updated.

It also removes method `aria.templates.SectionWrapper.setClassName` which has been removed from class `aria.templates.DomElementWrapper`, so thet it did not actually work.

Close #1081
fix #1085 checkbox init in MAC dropdown

checkboxes related to selected options are not ticked when the widget is initialised.
fix #1085 checkbox init in MAC dropdown

checkboxes related to selected options are not ticked when the widget is initialised.
fix #1082 'Tab' doesn't behave as 'enter' when defined as a selection key
feat #1086 Deprecation of cssClass in sections and repeaters

`cssClass` property in section and repeater configuration is now deprecated. It has to be replaced by `attributes.classList`.

In the specific case of the `childSections` configuration for the repeater, the `cssClass` could be a function like any other property, with the peculiarity that the function was called every time a change occurred in the bound map/array. This allowed to implement pyjama tables.
With this commit, this feature is replaced and enhanced: if the `attributes` property in the `childSections` configuration is a function, it is called every time there is a data change and its returned value is used to update the section attributes of each entry.

Close #1086
fix #1092 improve deprecation of IO.useXHRHeader

Don't log warnings after the user migrated to the new syntax