WIP HTML syntax part 3

This is still WIP but I'm opening a PR already, since it's huge, so that someone can start reviewing
(I'll add new commit with some tests, the src should be untouched or barely touched)

Almost all 200 files changed are just syntax update in HSP files. In some of the test files I had to tweak error messages since the way parser works has changed.

---------------------

In first commit the two most interesting changes are `hspblocks.pegjs` and `syntaxTree.js`

- lots of changes to support HTMLish definition of `args`, `controller`, `export`, newly-added `export-module` and `id` + lot of validation code
- removed assertions concerning modifiers at the beginning of the statement (`<export template`) since it's no longer supported (now it's always `<template maybe-export-here>`
- changed `mod` to `modifier` in the syntax tree, and now it's an `object` or `null` instead of string or empty string (to support `export="foo"`)
- errtests.js: added a few lines to aid debugging in case of template parse errors
- added `suberrors` array to syntax tree in case of `<template>`-statement parsing errors to be more detailed (see template8.txt for instance)
- some whitespace changes (my editor somehow replaced tabs with spaces, and removed trailing whitespace, IMO it's fine)

Due to the way how HTML attributes are parsed, I had to change some tests (template8 once again for instance)

In hspblocks, crazily big amount of code is for error handling to have friendly messages instead of terse parse errors.
For that I modified the HTMLAttribute to be more readable and provide `code` which is propagated to the template
in case of template opening statement parse error.

In the last commit I added the suberrors-awareness to the playground, this meant having to modify log to output `messages` array apart from `message` string, so that I can format them the way I want (i.e. `<br>`-separated), because currently in hashspace it's impossible to easily do any kind of pre-display manipulation like e.g. introducing HTML newlines in a multiline string
I kept `message` too (which just joins lines with a space) for backward compat (there were some failing log tests, I didn'qt want to touch it)
In the JS generator code I took advantage of the fact that log methods can have varags input.

Changes that need more work:
- introduced `export-module` which when parsed sets `node.isExportModule = true` for now but nothing more than that
- no checking for multiple conflicting exports, export-module etc
- `export` can have value `<template id=foo export=bar>` and then `block.modifier.exportName` is available (`null` if not set), but nothing is done with it further, it's just parsed