Add compiler plugins.

AST plugins allow consumers to preprocess and manipulate the AST. This
allows more efficiency in final compiled output and helps downstream
consumers use much more idiomatic helper code but provide a human
readable usage.

For example:

```javascript
{{#each foo in bar}}
{{/each}}
```

Can be preprocessed and transformed into:

```javascript
{{#each bar keyword="foo"}}
{{/each}}
```
Merge pull request #168 from rwjblue/add-ast-plugins

Add compiler plugins.
Bump version to v0.1.12.
Provide more information on mis-matched start/end tags.
Merge pull request #171 from rwjblue/make-mismatched-errors-more-helpful

Provide more information on mis-matched start/end tags.
Cleanup hooks
Merge pull request #172 from mmun/cleanup-hooks

Cleanup hooks
Update simple-html-tokenizer
Unwrap non-helper mustaches to ids
Merge pull request #174 from mmun/unwrap-attr-mustaches

Unwrap attr mustaches
A classList based add/removeClasses, setAttribute fallback
Add setProperty
Merge pull request #99 from mixonic/add-remove-class

A classList based add/removeClass, setAttribute fallback
Merge pull request #173 from mixonic/prop

Add setProperty
Remove types, add get hook
Merge pull request #175 from mmun/no-types

Remove types, add get hook