A private method `_render(view, options, &block)` replaces the previous
render method. The engine to use can be specified under options[:engine],
either as a Tilt::Template subclass or a name. When not specified,
`_render` infers the engine to use from the `view` parameter when possible.
`render` is promoted in the public API to allow clients to request rendering
while relying on engine inference. The signature has been generalized