Add helper functions, context struct for yielding

Added Context struct to hold yield and content_for function results,
also to exec random templates with random dot values. Content_for sets a
yield value from within a template, yield calls either content or a
template from the Context and runs it.
Add blocks to multitemplate, by extending the yield system

Blocks are implemented using a mind-bending system involving shared
contexts between multiple template executions. It then pushes the
content back along the execution chain until we find a template that's
not inheriting. I need to add the super_block thing, shouldn't be too
hard, basically create a request content map that holds in progress
blocks that need their super executions. Also it's 3:30 in the morning
and I need to sleep.