Allow blocks to have attributes

- Blocks can now have attributes.
- The end markers don't need to specify the attributes.

This is now valid syntax:

```
{{#geometry.square? width=3 height=3}}
  It's square!
{{/geometry.square?}}

{{*items status=completed}}
  - {{name}}
{{/items}}
```