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