Add a `partial` helper method for rendering partials

This adds a `partial` helper method for rendering partials
using view handlers. This, just like the `render` method,
leverages Sinatra's template rendering. This allows rendering
templates within other templates.

This organizes the rendering functionality in to a `Template` and
`Partial` class. The `Partial` is a specialized kind of
`Template`. In particular, it expects the files to be named with
a leading underscore and only accepts `locals`, instead of any
Sinatra rendering options.