Fixed the HTML grammar (& made it more consistent).

Tests and parser generation options have been updated accordingly.

Fixed:

- directive content definition: requiring at least one character to match the rule, as for the others following the same pattern
- made the content of CDATA optional
- added a rule to parse unquoted tag attributes: more correct, they don't eat special characters and match id specs

Consistency:

- inverted the use of terms "elements" and "nodes": they were completely misused
- moved the CDATA declaration above the other elements definition, to match the order defined in the alternative of "elements"
- removed several prefixes in node types: like "comment.opening" to "opening", you can do a small node traversal to find out it's an opening of a comment (here the type is more like a category, not a unique identifier)
- avoided some useless rules or duplication for guarded closes used for rules like comment content, CDATA content, ...