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