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