move render logic to the runner; call with locals directly

This moves the render logic from the service handler to the runner
and has the service handler just delegate to the runner.  This better
lines up with how the `halt` method is implemented and also lines
up with how Deas renders.

In addition, this changes the render call so that locals are passed
directly.  Before they were passed as a nested option.  The template
render system takes direct locals so this lines up better with that.
Also, Deas is moving to taking direct locals.  This does mean that
you can no longer pass custom template sources at render-time.  This
has yet to be used in production and its need is questionable.