pass logger to tempalate source on init; set as engine default opt

This allows engines to have access to any configured logger and make
use of it.  Right now it is passed in as a render local but we are
moving away from this with the new template engines render system.

The downsides to passing in as a local are it imposes this local
on the engine.  The engine may not need/want to give the templates
accss to the logger or they may want to expose it with a custom
local name or by some other means besides a local.  This gives the
engine the flexibility to choose how it handles the logger.
Merge pull request #143 from redding/kr-temp-source-logger

pass logger to tempalate source on init; set as engine default opt
add capture render/partial methods to the template source/engine API

This adds capture methods to the template system API.  These methods
allow passing a content block to render calls.  They work like their
non-capture counterparts in terms of handling layouts.

These are intended for engines that allow content capturing when
rendering.  They are optional and should only be implemented where
appropriate.  They will not be exposed to the view handler or runner
and will only be called from template scopes.

Their main utility is for implementing template helper methods that
need to capture content.  A plugin can configure its source and then
provide helper methods that call these on its source.

This also cleans up how templates are referenced in these methods.
Everything now consistently refers to the template using the
`template_name` local var.