`render` and `partial` template and source methods

This adds theses methods to the template api and source.  These
methods allow you to render partial template data and merge it into
a larger template render.

This includes some extensions I had to make to `Hash`, `Array` and
`nil`.  I needed these to minimize conditionals and to define data
merging across these objects.  Since these three types of objects
are valid for the data stack, they all three needed this method.
Polymorphism, yo.

This also includes a bench script for running with partials.  This
shows that using partials _greatly_ diminishes the performance of
rendering templates, FYI.

@jcredding ready for review.