New router

Like the `ScalaBusMod` this can be used as a replacement for `RouteMatcher`. It should be more idiomatic to use than the `RouteMatcher`.
Why do you need a mutable set here? I think you could have achieved the same by doing without the need to worry about sets:

```
req.response().headers().addBinding("Set-Cookie", s"${urlEncode(key)}=${urlEncode(value)}")
```