Mountable Rack apps

The router now accepts any Rack app as the second parameter to #route.
For this, Route needed to stop assuming that it was always routing to
a controller. For extra safety, Controller#action now returns a plain
old Array as opposed to an instance of Rack::Response; this is to make
it mountable in the same fashion but is compatible with framekworks that
expect the response to be an Array, like Rack specifies.