add `partial` method back in to the view handler and runner APIs

This is a revert of #129 (9b8cc207425f15e8c861d9ed1322c15e285d95c8).

The only difference from the original implementation is that the
partial args test struct uses `template_name` now to better align
with what the equivalent is called internally.

It was short-sighted to remove this logic.  The original concern
in #129 was that this is engine-specific logic.  After further
exploration, there is merit to having every engine be able to define
this logic formally.  Partial mean render this template file without
a view handler (or things it implies like layouts) - just with locals.
This concept can apply to any template engine.  Some may choose to
implement it, others not.

This is prep for moving off of Sinatra for template rendering and
getting a robust template rendering API in place.