Support nested params in ServerRouter

Recursively call `escapeParams()` on params so we can support nested params.
Otherwise, a querystring like:

    nested[key1]=value1&nested[key2]=value2

becomes

    {
     nested: '[Object object]'
   }