template source

This adds a component for configuring a source for template files
and engines.  This will be used by the template rendering system
to lookup specified source files and render them with the configured
engine.

This is part of moving away from Sinatra/Tilt for template rendering.

@jcredding ready for review.