Add render_each plugin, for rendering a template for each value in an enumerable
Add content_for plugin, for storing content in one template and retrieving it in another
Change r.root to only match get requests

In general, non-GET requests to root are rare, so r.root with
no arguments should only allow get requests.  It would be possible
to still accept an optional method argument and just make get
the default, but I think just having people do r.post '' for posting
to the root is fine.
Make some plugin request methods private
Optimize r.root by not calling _on

There's nothing to match, so just yield if the request is GET /.
Optimize match blocks with no arguments

If there are no arguments, there is no need to save the script name
and path info, and restore them later, or clear the captures and
call match_all.  Just yield directly in that case.
Optimize is and verb match blocks with no arguments

This removes r._on and splits it into two methods, r.always and
r.if_match.  r.always takes no arguments and always calls the
block, yielding nothing. r.if_match takes an array of matchers,
only calls the block if all matchers match, and yields the
captures.

r.is now checks if the arguments are empty.  If so, it does an
immediate check of the current path, and calls always if the path
is empty.  Otherwise, it adds the terminal condition and calls
if_match.

r.get and r.post now call always for empty args, and otherwise
add the terminal matcher and call if_match.

While here, fix RDoc for some request methods to reflect reality.
Fix caching of extension matcher

Previously, it would conflict with a string/symbol matcher due
to the same key being used.  Currently, just use an array with
the first element being the symbol :extension.  This could be
optimized so that it doesn't need to allocate an array, but
it doesn't seem worth it as the :extension matcher isn't that
common.
Add not_allowed plugin, for automatically returning 405 Method Not Allowed responses

This refactors the core so that RequestClassMethods contains a
def_verb_method method that will create a verb method in the given
module.  Because this is an instance method in the
RequestClassMethods, you have to wait until after the Base plugin
has been loaded for it to define the get and post methods.

This simplifies the all_verbs module, since that can just call
def_verb_method.