fix #434 iframe tests timing out in devmode

Iframe loader kept waiting indefinitely for the skin to be loaded
in dev mode. This was a clear code mistake, since the skin is loaded
actually later in loadSkin() function.

The problem was manifesting itself in browser-based test runner.
An example failing test: test.aria.widgets.container.dialog.MaximizableDialogTest
fix #437 Adding focused states to the aria:Button.

On all browsers except Firefox, there is no visual indication that an
{@aria:Button {}/} widget is focused.
Close #438
feat #430 Reduce intstruction number in tpl markup

Adding feature for merging text and expression items after template parsing in order to reduce the number of instructions

Close #430
feat #441 history enhancement

Singleton class aria.utils.History provides a cross-browser implementation of HTML5 native history API. With respect to the previous version, this one is more compliant with the standard behaviour:

- the onpopstate class event is not raised after a pushState or replaceState.
- the state property is available on the singleton and it corresponds to window.history.state.
- support for page reload and external navigation is supported also in browsers for which hash-based navigation fallback occurs (with the exception of IE7, for which the previous history is not kept after reloading, but only the current state is available).

However, the new version is backward compatible with the previous one. In order to disable backward compatibility, set aria.utils.History.isBackwardCompatible to false right after loading the class.
Close #441
feat #439 Improve widget test case

Improve the class WidgetTestCase by providing a dedicated test area and a method to create and initialize the widget under test

Close #439
fix #439 Enable Lint on test cases

One of the tests added in #439 is leaking a global. This commit enable linting on all test files and consequently fixes them
refactor Better validation for the configuration beans

The same code was used in several places, the idea is to mutualize it for a better code size and maintenance
fix #430 for CSS libraries

CSS Macro libraries should support $writeArray
Close #442
fix #444 Fix npm start command again

Since the new build changed some path, this commit is needed to fix npm start.
Finally it introduces a test case in node+mocha to make sure that the command keeps working.
It removes the watch feature as it was hogging the cpu.