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.

Related to #85.
Related to redding/sanford-rabl#1.
Related to redding/sanford-nm#1.

@jcredding ready for review.