The HTML parser is now far more permissive.

(tests have been fixed accordingly)

Made it more permissive and stores errors in nodes (flag them as having errors and set a property with a single error or a list). Also fixed some issues by the way.

Also, some nodes are marked as possible orphans: we should be able to parse them as they are, but outside of the context of the parent they should be in.

Here is a summary of the flexibility of the new grammar:

- most elements can be left open. When I say "element", I mean essentially any rule in the grammar which has a form: opening, content, closing.
- generally the content of these same elements has been made optional, or at least some parts of these contents
- there are other kind of rules that have been transformed to have optional parts. For instance, the attribute of a tag: when the assignment operator is present we expect a value but it can be left without
- when there are rules with only alternatives: if no alternative can be determined (too few characters), it falls back to a let's say abstract/generic super elements

Also brought more consistency and made important things optional:

- forced closing tags to match the latest opening tag, considering the id
- made it possible to parse alone not matching closing tags, considered as "orphans"
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