Fix tilt requires in render plugin spec

This avoids a warning on Rubinius.
Add Roda::RodaCache for a thread safe cache, currently used for match patterns and templates

Instead of duplicating the cached_matcher method, this makes the
underlying cache object thread safe.

Since similar caching is used for templates remove the Render::Cache
class and just use a RodaCache instance for caching, inlining the
fetch code into cached_template.

This simplifies things significantly, and is also faster on MRI
since template caching no longer uses a mutex there.
Support RequestClassMethods and ResponseClassMethods in plugins

I don't have immediate plans to use this,  but now that there is
non-trivial logic in the request class, there should be a way to
override that logic via a plugin.
Use RodaCache for the plugin cache

This is simpler and also faster on MRI as it avoids the mutexes
there.
Optimize r.is, r.get, r.post and similar methods by reducing the number of Array objects created

Instead of splatting arrays multiple times, add an _on method that
takes an array instead of multiple arguments, and have branching
methods call that.
Rename is_or_on private method to _verb
Fix description in pass spec
Add csrf plugin for csrf protection using rack_csrf