Refactor new router and fix some compat with sinatra

Compat list

* request should be able to modify
* pass with block should correctly be executed
Refactor new router

Get rid of unnecessary error classes
Get rid of unnecessary methods
Get rid of duplicated code
Fix encoding of pattern
Don't skip splat params test
Drop complicated query processing, use the :append option instead

This option can be used if mustermann19-0.3.1.1 later.
Support multiple splat params
Merge pull request #1828 from padrino/improve-router

Improve new router