Creation of a parser for AT templates and HTML

Parser - AT-HTML grammar
A new grammar has been created.
* It allows to parse at the same time AT templating language and HTML.
* It should parse any input string and output the AST representation. There should be no case in which the parsing fails.
* It decorates the tree with validation errors and warnings.
* It interacts with aria templates source code in order to retrieve the list of statements and validate their usage.
A stylesheet has been added for the highlight based on the new grammar.

Build
* build and watch npm scripts have been updated for the new grammar

Tests utility
The test utility test/node_modules/parserTester.js has been improved. It allows to
* test failures
* execute multiple tests whose input is in the same file
* test the duration of a parsing operation (useful for performance monitoring)
* output the expected result in a file

Tests
* test.js: Tests for the AT-HTML parser have been added.

Node/graph utility
The following methods have been added:
* merge: merges consecutive nodes updating the location information
* addError and addWarning in order to decorate a node with validation messages
* moveLocation: moves the location of a node by a specified offset. Useful for nesting parsing operations
In order to improve performances, traverse operations have been reduced, namely the whole tree elements are no longer endowed with an id or decorated with the reference to a shared node.

Front-end application
* The AT-HTML mode has been set as default.
* Parse, fold and outline actions on source change have been inhibited. Only highlight has been kept. Outiline is done only upon clicking on the right tab.
* Validate action has been introduced in order to decorate the ACE editor with warnings and messages.
* The update is niot done at every code change, but every two seconds and only if something has changed.

Close #3
Fixed the binary definition and the current working directory.

Added a binary script in a dedicated folder. This script has a shebang for more portability/reliability.

Also fixed the mess with the current working directory on which were based some features. Now the cwd is set to the root of the package.
Fixed the name of the generated binary.

Now it corresponds to the name of the project (this is fine like that in fact).
Fixed the document id mess.

- now a request accepts a real DocumentID input
- the id property of a DocumentID is now of type String instead of Number
- added aliases to define the id property of the DocumentID
Small consistency fix.

- now returns the whole DocumentID instance after initialization
- fixed the use of the returned document handle in the web application
Fixed the folding service: wrapped the returned range list in an object.

This is the chosen format of all service responses: an object, even with a single key if it is used only for wrapping another type of data.
Added options to customize the folding service.

See description in code (type definition) for more information.