template engine class for defining custom rendering engines

This builds out a basic template engine class to use as a base for
definining custom rendering engines.  These template engines will be
configured on template sources by extension.

This is part of the effort to add template rendering to Sanford.

Note, this bring in assert/factory to setup a basic factory module
for use in testing.
Merge pull request #97 from redding/kr-engine

template engine class for defining custom rendering engines
template source class for configuring template sources

This is the mechanism that will allow configuring template sources
for Sanford.  This source object is also the place you configure
any custom engines.  Engines are configured on a per-ext basis
and now know about any source path they are created with.

This is part of setting up the render pipeline for sanford.