fix #1013 Data model undefined when mac in error state

This commit fix a problem with the MAC that was resetting the data model to undefined when the user was inserting an invalid item.
fix #1019 MultiAutoComplete data model update and onchange listener

This commit fixes an issue with the onchange handler not being
called properly when removing options with the close button.
It makes sure the data model is updated properly, and the onchange
listener is called, and called only once when there is a change
in the widget value.

Before this commit, the checkValue method on widget controllers
was called in 2 different cases (for widgets with a drop down popup):
- when a new value comes from the data model bound to the widget
- when a value is selected in the drop down popup.

For the MultiAutoComplete, those two use cases have to be handled
differently, especially because the type of the value is different
(an array of objects in the first case and a single object in the
second case). So, this commit introduces a new method, called
checkDropdownValue, which is now called instead of checkValue in
the second case. This simplifies the code and makes it easier to read.

This commit also moves some code from the widget to the controller to
make the code of the MultiAutoComplete more consistent with other
widgets.

Also, this commit fixes some other issues linked to the "expando"
mode (now the popup stays open to allow checking and unchecking several
options).

Close #987
doc Callback in `Json.addListener` can't be a function

Since it's very untypical, it should be emphasised.

Also, documented when `responseJSON` is available.

Close #1010.
Close #1012.
feat #999 - Added new asserts methods

assertNull, assertNotNull, assertUndefined, assertNotUndefined, assertTruthy, assertFalsy

Close #1004.
fix #1020 Adding properties to the atflatskin for the MAC

Adding the properties in order to display the MultiAutoComplete widget with the atflatskin.
fix - old opacity value is stored in fullValue property
feat #1017 MultiAutoComplete navigation

It is now possible to use the left and right arrow keys to navigate throughout the whole widget, including currently inserted options. It is also possible to use the tab key to jump form the inserted options list to the text input field, and then from this field to the next focusable element in the page (outside the widget).

Close #1017
fix #546 Update sourceURL syntax in evaled files

Use `#sourceURL` in modern browsers and `@sourceURL` in Firefox <=22.

Close #1023.
fix #1030 MultiAutoComplete wrong behavior when editing without changing entry.
1.4.17
fix #1033 Removing wrong lines in the MultiAutoComplete.

This commit removes two lines which set a new value in
the data model when pressing tab if the field is empty
and not positioned at the end of the options (i.e. when
leaving the edit mode through tab if the field is empty).

There is no reason to set the value at that time as the
value has not changed, and this can lead to the onchange
handler being called later when the value has not changed.
fix #1038 Updating skin property for MultiAutoComplete widget

This commit updates the multiautocomplete property for skins.
fix #1032 viewport sizes updated when the first autoresizable element is registered
viewport sizes are now also updated when the first autoresizable element is registered, and not only when Layout singleton is loaded or a resize is done.
fix #1048 jshint es3 parameter set to true (old browsers support)
feat #1040 Check the skin when normalizing it

This commit updates the version of atpackager, and updates
the configuration of the ATNormalizeSkin visitor to check
the skin properties while normalizing them. In case a skin
property is not correct (i.e. if it does not match the
corresponding bean in aria.widgets.AriaSkinBeans), the
build fails.

Close #1040
fix #1041 MultAutoComplete changes when suggestion is under edit mode
adds support for Greenlandic language

Closes #1050
fix #1052 headers were declared as Object in bean

`headers` entry in request beans was declared as Object and not Map, which
meant that JsonValidator would fail when validating any non-empty
`headers` taking the RequestBeans cfg.

For consistency, `headers` are changed to `json:Map` in both related
places in CfgBeans and RequestBeans.
POST requests headers transmitted when using XDR
feat #1044 add aria.core.IO.postHeaders

This commit adds `aria.core.IO.postHeaders` array in order to add more
flexibility to the users and facilitate code simplification in 1.6.1.

It also properly deprecates certain features intially deprecated in 1.2.6
and 1.3.1 by improving documentation and adding deprecation warnings.

The code has been also slightly refactored to facilitate removal of
deprecated items in 1.6.1.

---

To sum up the situation, the following config options are deprecated:

In aria.core.IO:
- `useXHRHeader` and `defaultXHRHeader` (use `headers` and `postHeaders`)
- `defaultPostHeader`, `useDefaultPostHeader`, `defaultContentTypeHeader`,
   `useDefaultContentTypeHeader` (use `headers` and `postHeaders`)

In aria.modules.RequestBeans:RequestObject:
- `postHeader` (use `headers`)

In aria.core.CfgBeans:IOAsyncRequestCfg:
- `postHeader`, `contentTypeHeader` (use `headers`)

Close #1044.