properly handler splat and captures params in url generation

The Url class wasn't handling splat params as an Array.  Sinatra
provides the splat param as an Array and this was causing the named
params stuff to blow up in live testing.

Same thing for the default captures param Sinatra supplies.  For
our url generation, we don't support the captures param so it needs
to be ignored.

This updates the tests and the behavior to treat the splat as an
Array and properly reduce the splat array to a path with `*` subbed
for splat values.

@jcredding ready for review - another edge-case I ran into when live testing.