Add block function persuant to #88

Some things to note:

1. Accepts any expression as the block name parameter, just like Twig.
1. The block function can be nested, just like in Twig, and as exemplified in the associated acceptance tests.
1. Unlike Twig, the 'block' keyword cannot be used as the name of a block or variable. I attempted to fix that here, but it was going to be too large a change and far too unrelated. Will pull that out into a different issue.