Adding "declarative custom tags" into HTMLCanvas.

This adds `HTMLSnippet` class which collects all
```
<tag html-snippet="quux">
  ...
  <innertag html-snippet="*" />
  ...
</tag>
```
structures in the page and detaches them. Then it allows to use
```
  html quux with: [ html p with: 'Text' ]
```
to render
```
<tag>
  ...
  <innertag><p>Text</p></innertag>
  ...
</tag>
```
in the page.
Thus, you can define pieces of page structure declaratively
in html and use whole snippets as selector in HTMLCanvas.
The tag with `html-snippet="*"` becomes the "caret", that is,
it is simulated as if it was just added and you can continue
with `with:`, `at:put:` etc.

(maybe it can be added to Canvas itself and there is no need for a separate package?)