Pass entire block to startTemplate
Optimize fragment compiler
Fix fragment references in placeholders
Get tests passing
Merge pull request #17 from mmun/optimize-fragments

Optimize template fragments
Remove macros
Merge pull request #19 from mmun/remove-macros

Remove macros
Use Handlebars AST nodes

Reuse existing Handlebars AST nodes to improve compatibility.

Children of block/element nodes are now wrapped in a ProgramNode.

Rename HTMLElement to ElementNode.
Add AttrNode
Preserve AST during hydration compiler
Add TextNode
Use type instead of instanceof
Merge pull request #18 from mmun/ast-sync

Use Handlebars AST nodes
Implement stripping
Merge pull request #20 from mmun/strippers

Implement stripping
Refactor HTMLProcessor

The HTMLProcessor comes in two parts:

- acceptNode (formerly this.accept) accepts Handlebars AST nodes and is used
to walk the Handlebars AST. It mainly manages the construction of ProgramNodes
in the combined AST.

- acceptToken (formerly processToken) accepts a hybrid of "content"
tokens: all the simple-html-tokenizer tokens, as well as Handlebars blocks
and mustaches. It mainly manages the construction of ElementNodes in the
combined AST.
Fix mustaches in unquoted attribute values
Add some error messages

- Ensure that programs leave the element stack balanced.
- Ensure that blocks only appear inside elements or other blocks.
Merge pull request #21 from mmun/refactor-parser

Refactor parser
Sync tokenizer

- Character references are now expanded by the tokenizer