Implement stripping

Whitespace is removed from the AST at parse time. Any unnecessary text nodes are removed. This works nicely with single element programs, so instead of writing

```handlebars
{{#each}}<li>foo</li>{{/each}}
```

you can write

```handlebars
{{#each~}}
  <li>foo</li>
{{~/each}}
```

and still generate an optimized fragment

```javascript
function build(dom) {
  var el0 = dom.createElement('li');
  dom.appendText(el0, 'foo');
  return el0;
}
```