Have r.multi_route ignore non-String named routes

Previously, r.multi_route did not work if you had any non-String
routes, since it raised an error when building the regular
expression.  I think it's better to have r.multi_route ignore
non-String named routes.  The use case for this is when you have
some named routes you want to use with multi_route, but other
named routes that you want to use explicitly (such as when they
don't match the route prefix).
Support inheriting route block and adding middleware after route block

This makes subclassing Roda operate follow the principle of least
surprise.  Before, you couldn't subclass a Roda class with a route
and use it directly, as it wouldn't have a rack app build unless
you called the route method manually, and there was no way to
access the superclass route block, because it was only ever
stored in a local variable.

This stores the route block in a local variable, and moves most
of the Roda.route logic to a build_rack_app private method.
Roda.use can now just call the build_rack_app method to build
the app, which will not do anything if there is not a route block
yet.

This removes the @builder class instance variable.  This was used
back when use operated directly on @builder, but since use was
changed to just store middleware, this makes more sense as a local
variable in build_rack_app.