Use named captures for route regexps

In addition to better code quality, this allows user-defined regexp
routes to define named captures and access them via request params.
Fix route test
Require ruby 1.9.3 and rubygems 1.8.11

Because support for 1.8 is being dropped by ruby-core and we now rely
on named captures which are only available in 1.9+