Support inline templates via a render :template_block option

In order for inline templates to work, two changes are necessary:

1) You need to pass a block when creating the template that
   returns the template content.

2) You have to specify the engine upfront, since it can no longer
   be inferred from the file name.

With this patch, if the template_block option is used, it is passed
to the template new method, using the default template engine.

This is easy to extend in the future to handle inline templates
that do not use the default template engine.