Refactor render plugin internals

Add parse_template_opts private method, which takes the template and
opts arguments and returns a single hash unique to the call.  Change
cached_template, find_template, template_name, and template_path
private methods to operate on this hash.

Since parse_template_opts returns a unique hash, have find_template
just update the hash with the appropriate options, and make render
just use the options directly, instead of having find_template
return 3 separate values, improving flexibility.

This DRYs up some code in the view and render methods, and it allows
for a simpler internal API.  It also allows additional flexibility in the
template_name method, since it has access to the options and not just
the name.

This adds support for passing a :template_class option, to override the
template class to use.

Backwards compatibility issues:

If you change render_opts[:layout] after calling the plugin, it no
longer has an effect.  You need to use plugin :render, :layout=>...
instead, as :layout is now eager cached inside the :layout_opts
option.

The render plugin no longer passes all options from the render method
to the underlying template.  Now, to pass options to the underlying
template, you need to use the :opts option.  This makes it similar to
the plugin options, where the :opts option sets template options.

This affects the :js_opts and :css_opts in the assets plugin, which
expected the previous behavior.  Update the assets plugin so that
:js_opts and :css_opts are passed as the :opts value instead of
directly when calling render.  This means that you can no longer pass
non-template options via :js_opts and :css_opts.  I'm not sure anyone
would want to do that, but if so a new option can be added for it.
Fix caching of templates in the render plugin when :opts or :template_class is used

Roda inherited this brokeness from Cuba.  If any options are given,
they could change the result of subsequent renders, so they should
be cached separately.
Make RodaRequest#full_path_info an alias to path

Rack::Request#path already does the same thing as full_path_info,
though it isn't as optimized.  So just rename full_path_info to
path and alias it for backwards compatibility.

The full_path_info alias will be removed in Roda 2.
Add link to video of RubyConf 2014 presentation

Also add link to 4x3 version of RubyConf 2014 presentation given
at SacRuby Meetup.